ssh集群服务器免密登录

全栈工程师开发手册 (作者:栾鹏)
架构系列文章


现在有两个服务器,ip分别为172.16.0.230和172.16.0.221

修改服务器的hostname

在172.16.0.230上修改/etc/hostname的内容为

master2

在/etc/hosts中添加内容为

172.16.0.230    master2
172.16.0.221   master1

在172.16.0.221上修改/etc/hostname的内容为

master1

在/etc/hosts中添加内容为

172.16.0.230    master2
172.16.0.221   master1

两台服务器重启,hostname生效。

为用户添加sudo权限,并设置免密sudo

先添加用户

useradd -d /home/user1 -m user1
passwd user1     # 设置user1的用户密码

添加sudo权限:

echo "user1 ALL = (ALL) NOPASSWD: ALL" | sudo tee /etc/sudoers.d/user1
sudo chmod 0440 /etc/sudoers.d/user1

最好直接在/etc/sudoers中添加

user1 ALL = (ALL) NOPASSWD: ALL
注意在(ALL)后面有个空格,在NOPASSWD:后面也有个空格

安装ssh

两台服务器上执行下面的命令

apt-get update
apt-get install openssh-server

安装是ssh2的协议,所以可能会与ssh1的使用有些不同。

生成公钥私钥

在两台服务器上执行

ssh-keygen  -t rsa
一路回车,会在~/.ssh/目录下生成id_rsa  私钥, id_rsa.pub  公钥

设置权限(一定要设置正确的权限,才能正常访问)

sudo chmod 700 ~/.ssh/  
sudo chmod 640 .ssh/authorized_keys
sudo chown $USER .ssh
sudo chown $USER .ssh/authorized_keys
sudo chmod 600 ~/.ssh/id_rsa 
sudo chmod 600 ~/.ssh/id_rsa.pub   
sudo chmod 644 ~/.ssh/known_hosts  

配置hostname免密访问

在两台服务器上的~/.ssh/config加入

Host master1
    HostName 172.16.0.221
    Port 22
    User root
    IdentityFile  ~/.ssh/id_rsa

Host master2
    HostName 172.16.0.230
    Port 22
    User root
    IdentityFile  ~/.ssh/id_rsa

在两台服务器上执行

将公钥共享给远程服务器,并输入密码
ssh-copy-id -i ~/.ssh/id_rsa.pub master1 -f
ssh-copy-id -i ~/.ssh/id_rsa.pub master2 -f

以后在两台服务器上下面的命令就不需要设置免密了。

ssh master1
ssh master2 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

腾讯AI架构师

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值