-
-
Notifications
You must be signed in to change notification settings - Fork 100
公钥认证登录
Lonny Wong edited this page Jan 21, 2024
·
1 revision
-
在本地生成公私钥对,一般存放在
~/.ssh/
目录下,Windows 一般是存放在C:\Users\xxx\.ssh\
下(xxx
要替换成用户名 )。- 执行
ssh-keygen -t ed25519
生成 ED25519 的,私钥~/.ssh/id_ed25519
,公钥~/.ssh/id_ed25519.pub
。 - 执行
ssh-keygen -t rsa -b 4096
生成 RSA 的,私钥~/.ssh/id_rsa
,公钥~/.ssh/id_rsa.pub
。 - 以上任选一种即可,也可使用其他的公私钥类型,详看 openssh 的文档。
- 执行
-
登录服务器,将公钥( 即前面生成密钥对时
.pub
后缀的文件内容 )追加写入服务器上的~/.ssh/authorized_keys
文件中。-
~/.ssh/authorized_keys
中的一行代表一个客户端的公钥,注意要设置正确的权限:chmod 700 ~/.ssh && chmod 600 ~/.ssh/authorized_keys
-
-
tssh 登录时,默认会使用
~/.ssh/
目录下的常见私钥:id_rsa
,id_ecdsa
,id_ecdsa_sk
,id_ed25519
,id_ed25519_sk
等。 -
可以使用
-i
指定私钥文件登录tssh -i ~/.ssh/id_ed25519
,也可以在~/.ssh/config
中配置IdentityFile
指定私钥。 -
在
ssh-keygen
生成公私钥时,可以设置密码,开机后通过ssh-add
将私钥添加到ssh-agent
中( 此时要输入密码 )。然后 tssh 登录时就会与ssh-agent
交互,无需再次输入密码。这样既可以防止私钥文件被人盗走直接用,也兼顾了日常使用的方便性。