使用ssh-key免密码登陆远端设备
前言
本文适用于两种场景:
- 设备A使用ssh-key登陆设备B
- 通过ssh-key连接gitlab(github类似)
一、在设备A上生成密钥
ssh-keygen -t rsa 一路回车就好。还可以加上 -C “注释”
二、设备A使用ssh-key登陆设备B
将A生成的公钥发送到目标机器,这步有多种方法,选择其一即可
1、使用ssh-copy-id命令,也是最简单的办法
ssh-copy-id -i ~/.ssh/id_rsa.pub 用户名@对方机器IP
2、手动拷贝
1)确认目标机上有authorized_keys文件,若没有,则创建,并设置权限
touch ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
2)scp 将本机的id_rsa.pub复制到对方机器的.ssh目录下(或者直接复制内容也行,如果不成功需要注意编码格式)
3)在对方机器上执行 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys 导入公钥(或者 echo “密钥内容” >> ~/.ssh/authorized_keys)
3、完成以上步骤就可以验证是否能够免密登陆成功
三、将公钥放在gitlab/github上
1)点你的头像
2)点击SSH Keys,点新建
3)将刚才的公钥复制上去
4)添加ssh-key之后之后就可以通过git clone git@xxx.git 的方式下载代码,具体的路径在gitlab的工程里复制。是否需要再次输入密码,取决于刚才建立密钥的选择。