linux主机间无密码访问与复制文件

在linux下,当使用ssh -p xxx  user@ip登录另外一台服务器时,经常需要输入密码;或者使用scp命令拷贝文件到另外一台服务时,也提示需要密码,导致无法脚本自动化。当然可以使用第三方的开源工具expect编写密码自动输入脚本解决,在这里提供另外一种解决方式,即通过ssh-keygen的密钥进行身份校验,省去输入密码的烦恼,能够通过脚本自动拷贝文件。

登录远程服务器主要有2种方式:ssh与ssh2,无密码校验的原理都是一样的,但具体的处理方式有所不同。

环境:机器---A、B,系统--linux-suse 10

要实现A无密码访问B、A无密码拷贝文件到B、A无密码从B获取文件,需做以下设置。

1.ssh

1)在A上输入ssh-keygen -t rsa 命令,中间有提示要输入passphrase,不要做任何输入,一路回车即可

2)在~/.ssh/目录下生成2个文件:私钥证书id_rsa与公钥证书id_rsa.pub

3)将公钥证书id_rsa.pub拷贝到B的~/.ssh/目录下,如果使用scp命令,是需要输入密码的,因为此时未生效

4)将id_rsa.pub内容追加到B的身份验证列表authorized_keys文件中:

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

5)设置完毕


2.ssh2

1)在A上输入ssh-keygen -b 1024 -t rsa 命令,中间有提示要输入passphrase,不要做任何输入,一路回车即可

2)在~/.ssh/目录下生成2个文件:私钥证书id_rsa_1024_a与公钥证书id_rsa_1024_a.pub

3)将私钥id_rsa_1024_a添加到A的身份验证列表:

echo "IdKey id_rsa_1024_a" >> ~/.ssh2/identification

4)将公钥证书id_rsa_1024_a.pub拷贝到B的~/.ssh/目录下,如果使用scp命令,是需要输入密码的,因为此时未生效

5)id_rsa_1024_a.pub内容追加到B的身份验证列表authorization文件中:

cat ~/.ssh/id_rsa_1024_a.pub >> ~/.ssh/authorization

6)设置完毕


设置完成后,再通过A登录B,或者A拷贝文件到B、A从B获取文件都不提示输入密码了。反之,通过B登录A、B获取A的文件、B拷贝文件到A还是会提示输入密码。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值