全栈工程师开发手册 (作者:栾鹏)
架构系列文章
现在有两个服务器,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