SSH 上传文件至服务端Page Cover
SSH 上传文件至服务端
April 25th 20253 min read462 words

以上传公钥为例, 推荐使用 ssh-copy-id 上传公钥

# 将公钥 ~/.ssh/my_key.pub 强制复制到 user@hostname ssh-copy-id -i ~/.ssh/my_key.pub -p 2222 -f user@hostname

常用选项

-i [file] 指定要复制的公钥。默认 `~/.ssh/id_rsa.pub` -t [path] 指定远程主机上目标路径,必须是绝对路径,不要使用 '~', 默认 /home/username/.ssh/authorized_keys -p [port] 指定远程主机的端口,默认是 22 -f 强制模式。无论公钥是否已经存在,都会复制公钥到远程主机 -n 演练模式(dry run)。不会实际复制公钥,仅显示会发生的操作 -x 启用调试模式,等同于执行 `ssh` 时加上 `-x` 选项,会输出更多的调试信息 -s 使用 `sftp`。如果远程主机只允许 SFTP 而不允许执行 SSH 命令

CAT

简单、简陋、好用

# cat cat ~/.ssh/id_rsa.pub | ssh -p 22 username@ip_address "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"

SCP

-P 是指定端口(注意是大写 P)

# 传输单个文件 scp -P 22 id_rsa.pub [email protected]:/home/user1/pubkeydir/ # 传输整个目录(递归) scp -P 22 -r Demo [email protected]:/home/user1/ # 指定密钥 scp -P 22 -r -i ~/id_rsa Demo [email protected]:/home/user1/

SFTP

交互式管理远程文件(例如浏览文件、创建目录、删除文件等),或者需要传输大量文件,SFTP 更加灵活和适用。

连接

# 使用指定端口连接 sftp -P 2222 user@hostname # 上传目录 sftp -r /local/directory user@hostname:/remote/directory # 启用压缩传输文件 ```bash sftp -C user@hostname # 指定私钥文件进行身份验证 sftp -i ~/.ssh/my_key user@hostname # 通过中间主机跳跃连接 sftp -J jump_host user@hostname

基本用法

  • ls:列出远程目录内容。
  • cd:切换远程目录。
  • lcd:切换本地目录。
  • put:上传文件。
  • get:下载文件。
  • mkdir:在远程主机创建目录。
  • rmdir:删除远程目录。
cd /remote/directory lcd /local/directory put localfile /remote/directory/ get /remote/file localfile exit

end