启动关闭ssh
systemctl start sshd
systemctl stop sshd
确认ssh是否启动
[root@base .ssh]# netstat -a | more
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:ssh 0.0.0.0:* LISTEN
配置ssh(B服务器手动复制A服务器公钥)
A服务器生产公钥私钥(生成默认目录在~/.ssh下)
~./ssh==root/.ssh
# 生成ssh密码,-t 参数表示生成算法,可以选择rsa和dsa;-P表示使用的密码,""表示无密码。
ssh-keygen -t rsa -P ""
B新建~/.ssh/authorized_keys
文件,将服务器A里的~/.ssh/id_rsa.pub
内容复制进去保存,并授予权限644。另外~/.ssh目录授权700
# hostA为A的主机名或者A的IP地址
scp id_rsa.pub hostA:~/.ssh/
# 或在主机A上操作
scp hostB:~/.ssh/id_rsa.pub ~/.ssh/
# 将id_rsa.pub的内容追加到authorized_keys文件中(主要已有公钥不要被覆盖)
cat id_rsa.pub >> authorized_keys
# 然后可以删除A上的id_rsa.pub文件
$ rm -rf id_rsa.pub
# authorized_keys授予权限644
chmod 644 ~/.ssh/authorized_keys
#~/.ssh目录授权700
chmod 700 ~/.ssh
测试
ssh root@要进行链接的机器ip地址
【常见问题】
1.服务器B没打开公钥登录权限
解决方法:编辑/etc/ssh/sshd_config文件,注意以下几项的值:
PermitRootLogin yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
编辑完保存,重启sshd服务(ubuntu是ssh ,centos是sshd)
2.服务器B开启了selinux
解决方法:使用以下命令关闭
setenforce 0
并且编辑配置文件(永久关闭)
vim /etc/selinux/config
改变里面的值
SELINUX=disabled
然后保存