linux远程登录SSH详解

先去百度百科了解一下https://baike.baidu.com/item/ssh/10407?fr=aladdin

免密登录

1,测试有没有ssh服务,没有的话就安装openssh
2,cd ~/.ssh
3,ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
4,cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
5,本机测试ssh localhost
6,ssh-copy-id -i 目标用户@目标IP

权限保证:
1,.ssh文件夹的权限设置为700
2,.ssh文件夹里面的所有文件的如下
linux远程登录SSH详解_第1张图片
免密登陆拒绝访问,可能是因为其他用户有权限,不安全,仍需要密码登陆问题解决
如果A将公钥拷贝到B,但是A登陆B仍然需要输入密码,应当修改B主机的配置文件

(1)打开sshd_config配置文件

sudo vi /etc/ssh/sshd_config

(2)修改配置如下

#Port 22  监听的端口号,默认是22,可以自定义。
#Protocol 2  支持的协议,默认就好,不用修改
#PermitRootLogin yes 是否允许root直接登录,最好设置为no
#MMaxAuthTries 6 最大登录数,默认是6,建议设置为3,防止别人密码穷举。

#禁用root账户登录,如果是用root用户登录请开启 
PermitRootLogin yes 

# 是否让 sshd 去检查用户家目录或相关档案的权限数据, 
# 这是为了担心使用者将某些重要档案的权限设错,可能会导致一些问题所致。
 # 例如使用者的 ~.ssh/ 权限设错时,某些特殊情况下会不许用户登入 
 StrictModes no 
 
 # 是否允许用户自行使用成对的密钥系统进行登入行为,仅针对 version 2。 
 RSAAuthentication yes 
 PubkeyAuthentication yes 
 
 # 至于自制的公钥数据就放置于用户家目录下的 .ssh/authorized_keys 内 
 AuthorizedKeysFile .ssh/authorized_keys  
 
 #有了证书登录了,就禁用密码登录。 
 PasswordAuthentication no

(3)重启sshd服务

systemctl restart  sshd.service
或者service sshd restart

异常
1,如果在拷yichagn“Agent admitted failure to sign using the key”异常,执行如下命令
执行ssh-add ~/.ssh/id_rsa

2,有一点很奇怪,Fedora允许rsa算法生成的不允许dsa算法生成的密钥登录,而CentOS两者都允许
CentOS的默认配置文件
linux远程登录SSH详解_第2张图片

Fedora的默认配置文件
linux远程登录SSH详解_第3张图片
即使给他加上HostKey /etc/ssh/ssh_host_dsa_key还是不行,而CentOS注释掉了竟然可以

你可能感兴趣的:(Linux)