SSH 免密连接 Linux
生成 SSH 公钥
此步骤仅在你电脑未生成公钥时使用
shell
ssh-keygen -t rsa
有时候生成的秘钥里是以 OPENSSL 开头的,如果想生成 RSA 开头的,需要指定格式为 PEM
shell
ssh-keygen -m pem -t rsa
服务器配置
- 拷贝本机 .ssh/id_rsa.pub 里的内容到服务器 .ssh/authorized_keys 文件中 (进入此用户的.ssh 目录,将生成的公钥文件(默认为 id_rsa.pub)内容添加到与 sshd_config 中 AuthorizedKeysFile 设置项一样的文件(authorized_keys)中,如果没有.ssh 建立 .ssh 文件夹,赋权-R 700) 参考
本机配置服务器 IP 别名
- 创建 .ssh/config 文件
cd .ssh/
touch config
vim config
- 在 config 文件中加入类似如下配置:
Host ali //别名
HostName 106.15.199.100 //服务器 IP
Port 28 //ssh 端口
User root //登录用户
IdentityFile ~/.ssh/id_rsa //私钥 600权限
此时在本机就可以使用以下命令免密登录了。
ssh ali
SSH 连接的两种方式
- 把客户端公钥放到服务端
authorized_keys
- 在服务端生成公钥私钥后,将服务端的公钥放到服务端的
authorized_keys
后,将服务端的私钥放到客户端,可用以下方式连接
shell
ssh -i [服务端私钥] root@xxx
Github 配置公钥后clone显示没权限
- 编辑 SSH 配置文件:
打开或创建 ~/.ssh/config 文件(权限655),并添加以下内容:
Host github.com
Hostname ssh.github.com
Port 443
User git
IdentityFile ~/.ssh/id_rsa