ssh 免密码登录

简介

好几天没有写东西了,也不知道可以写什么,如果有好玩的东西,欢迎联系我 为什么需要ssh免密码登录,有的人说没有密码认证那么不就不安全了吗,所有人都可以用你的电脑去登录你的服务器,没错但是需要知道一点的是除了你的机器可以登录你的服务器,其他的机器是不可以登录你的服务器的所以相对 来说总不可能有俄罗斯黑客用字典爆破了你的密码登录你的服务器的情况了把,所以相对来说,这种方式是安全的,因为你只需要保护好你的个人电脑不被黑客偷走,其他的密码要不要复杂密码会不会被爆破掉就不用担心了。安全都是相对的,而且登录减少了输入密码的步骤还简化了登录,何乐而不为

###操作 首先你要生成一个r公钥/私钥对 ssh-keygen -t rsa -t 表示使用哪种公钥加密算法,目前为止没人会蠢到买一台量子计算机来破解你的ssh秘钥来盗取你服务器上的小H片的,所以你可以放心使用这种加密方式 就像下面这样

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
➜  ~ ssh-keygen -t rsa 
Generating public/private rsa key pair.
Enter file in which to save the key (/home/bboysoul/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /home/bboysoul/.ssh/id_rsa.
Your public key has been saved in /home/bboysoul/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:8e5hkhh4pYvIq4LH1TAzOq3YUne/byV+Mr9DgKY9A6w [email protected]
The key's randomart image is:
+---[RSA 2048]----+
|                 |
|                 |
|     .  o.       |
|    =.oooo.      |
|   o.B+=S ..     |
| .+.Eo+++o. o    |
|.=o=..o.o+++     |
|= =.    .+=.o    |
|o+.     .+o=oo   |
+----[SHA256]-----+

之后进入你主目录下.ssh文件夹下,你会发现有下面这几个文件

1
2
➜  .ssh ls
id_rsa  id_rsa.pub  known_hosts  known_hosts.old

接着你要想个办法把id_rsa.pub这个文件中的内容复制到你的服务起下.ssh/authorized_keys这个文件中,没有的话就新建一个 而且你要保证.ssh目录的权限必须是700 , .ssh/authorized_keys文件权限必须是600 之后在自己的机器上执行 ssh 用户名@ip 就可以不输入密码进入了

禁止ssh使用密码登录

编辑ssh的配置文件 vim /etc/ssh/sshd_config 把其中PasswordAuthentication修改为no就好了 之后重启ssh服务 sudo service ssh restart

插曲

在写这篇博客的时候我第一次添加秘钥登录是没什么问题的直接登录进去了,之后我删除了相关文件登录的时候不能直接免密码登录,出现了报错

1
2
3
➜  .ssh ssh [email protected]
sign_and_send_pubkey: signing failed: agent refused operation
[email protected]'s password:

出现这个问题的时候你只要在本地机子上执行下面两条命令就好了

1
2
eval "$(ssh-agent -s)"
ssh-add

视频地址

https://asciinema.org/a/U6rjHyuFLRMa7sMzYZFiidGuY

Have Fun