ssh免密登录服务器
一般我们登录服务器:
// 第一步:输入登录身份和IP。(IP不好记,记不住还得重新查找)
ssh root@111.222.333.444
// 第二步:输入密码 (要死了,记不住)
lxinwe80{]023rji/lsejQ3dd
那么怎么简单一点,既不用输入登录身份,也不用输入IP,更不用输入密码?
第一步:创建 ssh 私钥和公钥
本机应该有,如果不知道请自行搜索
第二步:添加服务器配置:
-
复制 本机 .ssh 中的公钥内容 (.pub 结尾的文件中的内容)
(我电脑配置了两个公钥,分别是公司邮箱和个人邮箱)
id_rsa.pub 和 id_rsa ,petalmail_id_rsa.pub 和 petalmail_id_rsa 是公钥和私钥的关系。 - 把公钥拷贝到服务器的 ~/.ssh/authorized_keys 文件中(如果没有则去创建)。
第三部:本地配置
在本地的 ~/.ssh 找到 或者 创建 config 文件,按照一下进行配置:
Host *
KexAlgorithms +diffie-hellman-group1-sha1
// 上面这两个一定要有,不然提代码可能出现问题。会报错(下图有报错信息)。
Host huawei // huawei 这是代替服务器 IP 起的名称。
HostName 111.222.333.444 // 要登录服务器的 IP
User root // ssh 登录时候的身份,例如:ssh root@11.22.33.44 中的 root
Port 22 // ssh 所使用的端口,默认是 22
IdentityFile ~/.ssh/id_rsa // 刚才使用的 公钥 对应的私钥路径
完成!!!
没有正确配置 config 提交代码时候报错
Unable to negotiate with 10.18.101.6 port 29418: no matching key exchange method found. Their offer: diffie-hellman-group14-sha1,diffie-hellman-group1-sha1
fatal: Could not read from remote repository.
第四步:尝试登录
尝试登录
ssh huawei // 简单就能登录服务器, 无需密码