在Ubuntu上使用SFTP和SSH密钥认证可以提供更安全的文件传输方式。以下是设置和使用SSH密钥认证的步骤:
如果你还没有SSH密钥对,可以使用以下命令生成:
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
按照提示操作,通常会生成两个文件:id_rsa
(私钥)和id_rsa.pub
(公钥)。
使用ssh-copy-id
命令将公钥复制到远程服务器的~/.ssh/authorized_keys
文件中:
ssh-copy-id user@remote_host
其中,user
是远程服务器的用户名,remote_host
是远程服务器的地址。
编辑或创建~/.ssh/config
文件,添加以下内容以配置SSH客户端使用密钥认证:
Host remote_host
HostName remote_host
User user
IdentityFile ~/.ssh/id_rsa
将remote_host
替换为实际的远程服务器地址,user
替换为实际的用户名。
使用以下命令测试SFTP连接:
sftp user@remote_host
如果一切配置正确,你应该能够成功连接到远程服务器并开始使用SFTP。
为了进一步提高安全性,可以在远程服务器上配置SSH服务器以禁用密码认证。编辑远程服务器上的/etc/ssh/sshd_config
文件,添加或修改以下内容:
PubkeyAuthentication yes
PasswordAuthentication no
然后重启SSH服务以应用更改:
sudo systemctl restart sshd
确保远程服务器上的防火墙允许SSH连接。例如,使用ufw
时,可以运行以下命令:
sudo ufw allow ssh
通过以上步骤,你应该能够在Ubuntu上成功配置和使用SFTP和SSH密钥认证。