SSH 三步解决服务器文件传输的免密登录

我这个的场景是,每天跑批服务器A从服务器B拿文件跑模型,模型部署在服务器A上,运行完结果再回传给服务器B。

因此服务器A与B的传输必须连通,使用scp 命令时不会要求输密码。

网上查了一些方法,并不是都可以适用的。

第一种是用sshpass工具,自动传输密码。但会存储明文密码,在生产环境上风险很高。

第二种是用expect工具,也是利用交互来传递明文密码。

这两种方法的明文密码虽然也可以加密后再解密,但毕竟需要再安装工具,显得并不实用。

第三种方法也是最终采用的方法,在网上找到的。只需要三步就可以实现免密登陆。

以上3种方法来自这篇文章,讲的很详细:https://blog.csdn.net/nfer_zhuang/article/details/42646849


 

1.客户端生成公私钥

第一步:本地客户端生成公私钥:(一路回车默认即可,遇到需要输入yes的就输入yes)

ssh-keygen

上面这个命令会在用户目录.ssh文件夹下创建公私钥。

cd ~/.ssh
ls

可以看到目录下已经创建两个密钥:

  1. id_rsa (私钥)
  2. id_rsa.pub (公钥)

2.上传公钥到服务器

第二步:将公钥及当前用户写到服务器上的ssh目录下:

ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]

这里测试用的服务器地址为:192.168.235.22,用户为:root 。

不一定需要root这么高的权限,我在使用时,输入omm的账号和密码就可以了。

cd ~/.ssh
vim authorized_keys

可以看到客户端写入到服务器的 id_rsa.pub (公钥)内容。

3.测试免密登录

第三步:测试客户端通过ssh连接远程服务器,实现免密登录:

ssh [email protected]

你可能感兴趣的:(Linux,linux)