SSH密钥登陆服务器
连接Linux服务器
步骤
- 进入用户目录:
cd
或cd /home/xxx
- 创建.ssh文件夹:
mkdir .ssh
- 修改.ssh文件夹权限为700:
chmod 700 .ssh
- 进入.ssh文件夹:
cd .ssh
- 创建或编辑authorized_keys文件:
vi authorized_keys
,将公钥添加到文件末尾。 - 修改authorized_keys权限为600:
chmod 600 authorized_keys
- 修改sshd服务配置文件,允许公钥登陆:
sudo vi /etc/ssh/sshd_config
1 2 3 4
# 允许私钥登陆 PubkeyAuthentication yes # 指定私钥文件 AuthorizedKeysFile .ssh/authorized_keys
- 重启sshd服务:
systemctl restart sshd.service
若进行了以上操作仍然提示失败,则可使用命令
ssh -Tv $server_ip
进行调试。
如果是CentOS6.x的系统,还需要关闭SeLinux才能正常登录。
sshd_config配置说明
https://www.freebsd.org/cgi/man.cgi?sshd_config(5)
服务器host key变化导致连接失败
若服务器重装了系统,或者有硬件变化,则可能会导致host key变化,此时客户端通过ssh连接时会出现如下报错:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: POSSIBLE DNS SPOOFING DETECTED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
The RSA host key for [xxx.com]:57522 has changed,
and the key for the corresponding IP address [172.26.101.72]:57522
is unknown. This could either mean that
DNS SPOOFING is happening or the IP address for the host
and its host key have changed at the same time.
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a host key has just been changed.
The fingerprint for the RSA key sent by the remote host is
SHA256:du3fKBQRb+udLRzrYt3tVISqL9reYPC2jd4F6klP9Tc.
Please contact your system administrator.
Add correct host key in C:\\Users\\xxx/.ssh/known_hosts to get rid of this message.
Offending ECDSA key in C:\\Users\\xxx/.ssh/known_hosts:2
RSA host key for [xxx.com]:57522 has changed and you have requested strict checking.
Host key verification failed.
解决方法:去.ssh/known_hosts下删除服务器对应的host key或者执行如下命令: ssh-keygen -R [xxx.com]:57522
连接GitHub
- 登录GitHub。
- 点右上角的头像,选择
Settings
。 - 点左侧
Access
栏里的SSH and GPG keys
。 - 点右侧New SSH key。
- Title填写该密钥的名字(通过该名字来区分密钥,因为添加后是看不到公钥内容的)。
- Key type保持默认的
Authentication Key
就好。 - Key填写公钥的内容,即xxx.pub里面的。
- 最后点Add SSH key即可。
连接GitLab
- 登录GitLab。
- 点右上角的头像,选择
编辑个人资料
。 - 点左侧
SSH密钥
。 - 密钥填写公钥的内容,即xxx.pub里面的。
- 标题填写该密钥的名字(通过该名字来区分密钥,因为添加后是看不到公钥内容的)。
- 到期时间如果不选,则会一直有效。
- 最后点添加密钥即可。
参考:https://docs.gitlab.com/ee/user/ssh.html#add-an-ssh-key-to-your-gitlab-account
This post is licensed under CC BY 4.0 by the author.