第一步:在A服务器上生成SSH密钥对登录到A服务器。
生成SSH密钥对:
ssh-keygen -t rsa
按提示操作,建议不设置密码,这样可以实现真正的免密。默认生成的密钥文件会保存在~/.ssh/id_rsa和~/.ssh/id_rsa.pub。
第二步:将A服务器的公钥复制到B服务器将公钥复制到B服务器:
cat ~/.ssh/id_rsa.pub | ssh user@B_server_IP 'mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys'
在这个过程中,你需要输入B服务器的用户密码来进行验证。
第三步:配置B服务器的SSH服务,确保B服务器上的SSH配置允许使用公钥认证。编辑/etc/ssh/sshd_config文件:
sudo vi /etc/ssh/sshd_config
确保以下行存在且没有被注释(即行前没有#号):
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
然后重启SSH服务:
sudo systemctl restart sshd
第四步:从A服务器使用SCP命令免密拷贝文件,使用SCP命令从B服务器拷贝文件到A服务器:
scp user@B_server_IP:/path/to/remote/file /path/to/local/destination
测试是否可以免密登录:
ssh user@B_server_IP
如果不需要输入密码就能登录成功,说明配置成功。
这样,A服务器就可以免密从B服务器上通过SCP取文件了。