阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

服务器间访问不用密码的设置

119次阅读
没有评论

共计 2382 个字符,预计需要花费 6 分钟才能阅读完成。

经常在服务器程序 (脚本) 里面,或在命令行中,执行 ssh,scp 命令,会碰到要求密码的情况,很不方便!

如果在两台相互信任,其实步骤挺简单,假设要从主机 1 上执行,ssh,scp 操作。

  • 主机 1:host1    用户 1:user1
  • 主机 2:host2    用户 2:user2

一: 在主机 1 上执行下列操作:

1./home/user1/.ssh/ 目录下,执行:ssh-keygen –t id_rsa

$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/user1/.ssh/id_rsa):
/home/user1/.ssh/id_rsa already exists.
Overwrite (y/n)? y
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/user1/.ssh/id_rsa.
Your public key has been saved in /home/user1/.ssh/id_rsa.pub.
The key fingerprint is:
12:a5:55:cc:1e:59:34:61:a2:41:ce:92:5a:a8:9d:ed user1@host1

2. 一路默认回车,生成 id_rsa.pub 文件

3.cat id_rsa.pub >> authorized_keys

二: 在主机 2 上执行下列操作:

1. 拷贝主机 1 上的 authorized_keys 文件到 /home/user2/.ssh/ 目录下。

ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAwvAv1SKPIkO2ucdmuz13RkVvSuZRKg/FGllbje/a2fDG2AYSdSKQSqe3GO/40YzA3BnVwBEY+cOKbTj9gpVWLf7bi1jZBDokeO3TWdQnzLfOObA4+F3EunwruyqekLTkAEpmoM400ndqmV5VGi1uvRl8gFgVes6pGkZAorzPll7vCCX4DC1R9XK8/VmtLm7Z4egR/UkPoiA9t7u/K3tdjn28DhPSEWnV1ggZZ30DxB14Mtw0+ZjP5joTISFXVBVDxbuUiibuS+2TmjVM3i20Ep1LTfzwFwYBbSGbReRIdowGsCaFK9zs6WIY84SRWR/mvIJOZQhbU1N/dQSnHobICQ== user1@host1

2. 更改目录访问权限:chmod 755 ~/.ssh/

三: 最后在主机 1 上执行:

1. ssh user2@host2
 
2. scp user2@host2:/var/log/*.*  .
 
就不需要输入密码了。

NOTE:
 
首先 ssh-keygen -t rsa 命令生成了一个密钥和一个公钥, 而且密钥可以设置自己的密码。可以把密钥理解成一把钥匙, 公钥理解成这把钥匙对应的锁头,把锁头 (公钥) 放到想要控制的 server 上, 锁住 server, 只有拥有钥匙 (密钥) 的人, 才能打开锁头, 进入 server 并控制。而对于拥有这把钥匙的人, 必需得知道钥匙本身的密码, 才能使用这把钥匙 (除非这把钥匙没设置密码), 这样就可以防止钥匙被了配了 (私钥被人复制)。当然, 这种例子只是方便理解罢了, 拥有 root 密码的人当然是不会被锁住的, 而且不一定只有一把锁(公钥), 但如果任何一把锁, 被人用其对应的钥匙(私钥) 打开了, server 就可以被那个人控制了。
 所以说, 只要你曾经知道 server 的 root 密码, 并将有 root 身份的公钥放到上面, 就可以用这个公钥对应的私钥 ” 打开 ”server, 再以 root 的身分登录, 即使现在 root 密码已经更改!

如果想控制 n 个机器, 那就需要 n 对钥匙(密钥和公钥), ssh-keygen 命令可以随意更改钥匙对的名字, 最好取容易识别的文件名,比如:
 # ssh-keygen -t rsa
 Generating public/private rsa key pair.
 Enter file in which to save the key(/root/.ssh/id_rsa): /root/.ssh/id_rsa_192.168.10.1
 
……

这样私钥和公钥的名字分别就是:
 
id_rsa_192.168.10.1  和 id_rsa_192.168.10.1.pub
 然后将 id_rsa_192.168.0.1.pub 文件的内容, 追加到服务器的~/.ssh/authorized_keys 文件中,

最后, 在本地用 ssh 命令的 -i 参数指定本地密钥, 并登录:
 # ssh -i /root/.ssh/id_rsa_192.168.10.1 192.168.10.1
 
如果密钥设置了密码, 就用密钥的密码登录, 没设密码, 就直接登录进去了。scp 也是一样。

通过配置 SSH 深刻理解 Puppet 的语法及工作机制 http://www.linuxidc.com/Linux/2013-07/87882.htm

Ubuntu 下 SSH 安装或设置 http://www.linuxidc.com/Linux/2013-07/87368.htm

SUSE 启用 SSH 和 FTP http://www.linuxidc.com/Linux/2010-08/28286.htm

使用 SSH 客户端登陆 Linux 之后出现乱码的解决方案 http://www.linuxidc.com/Linux/2010-08/28141.htm

详解 Linux 中 SSH 远程访问控制 http://www.linuxidc.com/Linux/2013-07/88048.htm

正文完
星哥说事-微信公众号
post-qrcode
 
星锅
版权声明:本站原创文章,由 星锅 2022-01-20发表,共计2382字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中