ssh终端通过密钥登录有三种方式,一种是通过ssh-copy-id命令,另一种是通过手动导入公钥。第三种是将远程主机的密钥下载到本地导入,下面分别介绍这两种方式。
1. ssh-copy-id命令
ssh-copy-id命令可以将本地用户的公钥复制到远程主机的authorized_keys文件中,从而实现免密码登录。
使用方法如下:
ssh-copy-id -i ~/.ssh/id_rsa.pub username@hostname
其中,-i参数指定公钥文件路径,username为远程主机的用户名,hostname为远程主机的IP地址或域名。
执行该命令后,会提示输入远程主机的密码,输入正确的密码后,公钥文件会被复制到远程主机的~/.ssh/authorized_keys文件中。
2. 手动导入公钥
手动导入公钥的方式是将本地用户的公钥文件内容复制到远程主机的~/.ssh/authorized_keys文件中。
使用方法如下:
cat ~/.ssh/id_rsa.pub | ssh username@hostname "mkdir -p ~/.ssh && touch ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys && cat >> ~/.ssh/authorized_keys"
其中,~/.ssh/id_rsa.pub为本地用户的公钥文件路径,username为远程主机的用户名,hostname为远程主机的IP地址或域名。
执行该命令后,会提示输入远程主机的密码,输入正确的密码后,公钥文件内容会被追加到远程主机的~/.ssh/authorized_keys文件中。
3. 下载远程主机的密钥并导入
下载远程主机的密钥并导入的方式是将远程主机的公钥文件下载到本地,然后将公钥文件内容复制到本地用户的~/.ssh/authorized_keys文件中。
使用方法如下:
scp username@hostname:~/.ssh/authorized_keys ~/.ssh/authorized_keys
其中,username为远程主机的用户名,hostname为远程主机的IP地址或域名,/.ssh/authorized_keys为远程主机的公钥文件路径,/.ssh/authorized_keys为本地用户的公钥文件路径。
首先修改 PEM 的权限:
sudo chmod 600 key.pem
Mac OS 连接服务器使用 PEM 文件的命令如下:
ssh -i key.pem root@IP
```bash
你也可以使用 ssh-add 添加 key 文件:
```bash
ssh-add -k key.pem
接着正常登陆就可以了:
ssh root@IP
另外我们使用的时候经常会有掉线的问题,可以修改以下配置来解决。
登陆服务器:
vim /etc/ssh/sshd_config
找到下面两行:
ClientAliveInterval 0
ClientAliveCountMax 3
去掉注释,改成:
ClientAliveInterval 30
ClientAliveCountMax 86400
这两行的意思分别是:
1、客户端每隔多少秒向服务发送一个心跳数据
2、客户端多少秒没有相应,服务器自动断掉连接
重启 sshd 服务:
service sshd restart
或者
systemctl restart sshd
4. 使用密钥登录
在本地终端中,使用以下命令登录远程主机:
ssh -i ~/.ssh/id_rsa username@hostname
其中,-i参数指定私钥文件路径,username为远程主机的用户名,hostname为远程主机的IP地址或域名。
如果私钥文件路径为默认路径,即~/.ssh/id_rsa,则可以省略-i参数。
如果远程主机的公钥文件已经添加到本地用户的~/.ssh/authorized_keys文件中,则可以使用密钥登录,无需输入密码。
解决ssh登录问题kex_exchange_identification: read: Connection reset by peer
出现如下错误:kex_exchange_identification: read: Connection reset by peer。
运行如下指令:
ssh-keygen -R IP地址
然后再尝试连接。
5. 生成密钥对
在本地终端中,使用以下命令生成密钥对:
ssh-keygen -t rsa -b 4096 -C "[email protected]"
其中,-t参数指定密钥类型为RSA,-b参数指定密钥长度为4096位,-C参数指定密钥注释,可以是邮箱地址或其他信息。执行该命令后,系统会提示输入密钥文件保存路径和密码,默认路径为~/.ssh/id_rsa,密码可以留空。
生成密钥对后,私钥文件为/.ssh/id_rsa,公钥文件为/.ssh/id_rsa.pub。
标签:公钥,密钥,keys,主机,authorized,导入,SSH,远程,ssh From: https://www.cnblogs.com/bcd589/p/18426037