1. 操作流程
- 生成密钥(非对称加密)
ssh-keygen -t rsa -C "[email protected]"
注意,这里的 -C 表示注释,没有什么用,主要是标记密钥避免自己遗忘。
- 查看密钥(公钥)
//进入所属目录
cd ~/.ssh
cat id_rsa.pub
windows 系统在
C:\Users\用户名\.ssh
- 将公钥放到 Github 或者 Gitlab 所属位置
- 验证是否授权成功
ssh -T [email protected]
2. 问题
Q1:
RROR: You’re using an RSA key with SHA-1, which is no longer allowed.
Please use a newer client or a different key type.
Please see https://github.blog/2021-09-01-improving-git-protocol-security-github/ for more information.
Answer:
rsa 非对称加密不再被支持。换一个加密算法就行了。
ssh-keygen -t ecdsa -b 521 -C "[email protected]"
Q2
:
Permissions 0640 for ‘/home/lrkqcd/.ssh/id_ecdsa’ are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
Load key “/home/lrkqcd/.ssh/id_ecdsa”: bad permissions
Permission denied (publickey).
fatal: Could not read from remote repository.
Answer:
私钥权限的问题,只能文件所属用户有读权限。
chmod 600 id_ecdsa
Q3:
fatal: unable to access ‘https://github.com/zuohaimin/SSR_IMG.git/’: gnutls_handshake() failed: The TLS connection was non-properly terminated.
Answer:
一般来说是网络问题,被墙了。
//取消http代理
git config --global --unset http.proxy
//取消https代理
git config --global --unset https.proxy
一般来说没啥用。
Q3:
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: POSSIBLE DNS SPOOFING DETECTED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
The RSA host key for github.com has changed,
and the key for the corresponding IP address xx.xx.xx.xx
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.
Answer:
上次连接过,主机唯一标识改变了。解决方法有两种:
- 直接存档删除 .ssh 文件夹下面的 known_hosts 文件。
ssh-keygen -R 对应的ip地址
Q4:
ssh: connect to host github.com port 22: Connection refused fatal: Could not read from remote repository.
Answer:
22端口可能被防火墙屏蔽了,可以尝试连接GitHub的443端口。
在
~/.ssh/config
中添加(windows文件为
C:\Users\用户名\.ssh\config
)
# Add section below to it
Host github.com
Hostname ssh.github.com
Port 443
版权归原作者 来日可期1314 所有, 如有侵权,请联系我们删除。