Linux下的ssh密钥

创建SSH Key

生成

创建一对公钥与私钥

1
ssh-keygen -C "description"

-C可以对Key进行描述,描述内容将在公钥(.pub)的最后显示.

  • 输入Key的名称
  • 输入Key的密码(如果不需要,可以不输入)

复制公钥

1
ssh-copy-id user@hostname

-i指定公钥文件

登陆

1
ssh -i privateKey user@hostname

-i指定私钥文件

Client

管理多个私钥

方法一

修改~/.ssh/config

1
2
3
4
5
Host host_alias
HostName host
Port 22
User ubuntu
IdentityFile id_rsa_common

有多个私钥只需要追加在后面即可。

通过配置后可以直接

1
ssh host_alias

进行登录

方法二

1
2
3
4
5
6
7
8
9
#ssh-agent
# 不输可能出错?
# 添加私钥
ssh-add id_rsa_common

# 查看私钥列表
ssh-add -l
# 清空私钥
ssh-add -D

Server

管理多个公钥

只要将公钥中的内容直接复制到authorized_keys文件中即可。

SSH配置

开启鉴权

1
2
3
4
5
RSAAuthentication yes
PubkeyAuthentication yes

#PermitRootLogin no
#PasswordAuthentication yes

Github

将公钥直接复制到用户下的SSH中

1
ssh -T [email protected]

使用这种测试时必须ssh-add,否则它只会查找目录下默认的私钥名,如果自定义了名字则找不到。并且如果使用的是第一种添加私钥的方法也不行,因为此时请求的是git账号。


Reference

https://www.cnblogs.com/yanglang/p/9563496.html

https://blog.csdn.net/zyaiwmy/article/details/54313283

https://www.jianshu.com/p/fe215c52c534