在客户端生产一对关联的密钥(key pair)
ssh-keygen
一路路敲回⻋车键(Enter)即可
OpenSSH默认⽣生成的是RSA密钥,可以通过-t参数指定密钥类型
⽣生成的公钥:~/.ssh/id_rsa.pub
⽣生成的私钥:~/.ssh/id_rsa
把客户端的公钥内容追加到服务器器的授权⽂文件(~/.ssh/authorized_keys)尾部
ssh-copy-id root@服务器器主机地址
需要输⼊入root⽤用户的登录密码 ssh-copy-id会将客户端/.ssh/id_rsa.pub的内容⾃自动追加到服务器器的/.ssh/authorized_keys尾部
问题:
将公钥文件追加到授权文件尾部时,
如果ssh-copy-id 函数在远程服务器不存在,终端报错如下
-sh: ssh-copy-id: command not found
可以尝试用以下命令解决,直接复制本地的pubkey内容到远程服务器。
命令行如下:
cat ~/.ssh/id_*.pub | ssh root@手机ip 'cat >> .ssh/authorized_keys'
再次登陆手机就可以不输入密码了。
完整流程
user:~ user $ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/user/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /Users/user/.ssh/id_rsa.
Your public key has been saved in /Users/user/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:saAiHhOsDt2612KJ62L5J8INLASwmwmpyvtNBE93D00 user@ user.local
The key's randomart image is:
+---[RSA 2048]----+
|o E |
|oo o |
|=o . ....o . |
|+*..+....oo |
|@oo oo S . |
|B+oo. |
|++=. + |
|.=o+B.. |
|.+B*oo |
+----[SHA256]-----+
user:~ user $ cat ~/.ssh/id_*.pub | ssh root@服务器器主机地址 'cat >> .ssh/authorized_keys'