配置ssh(B服务器手动复制A服务器公钥)

启动关闭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
然后保存

你可能感兴趣的:(ssh,服务器,运维)