日常的服务器管理和远程访问中,每次都输入密码不仅繁琐,还可能影响工作效率
SSH 密钥是一种基于非对称加密算法的身份验证方式。它由一对密钥组成:私钥和公钥。私钥需要我们妥善保管,绝不能泄露;而公钥则可以放心地放置在需要访问的服务器上。
一旦设置完成,后续的 SSH 连接就无需再输入密码
❗操作分成本地和远程:
本地
生成 sshkey
ssh-keygen -t rsa -b 4096 -C "<comment_here>"
这里会有让你输入的地方, 可以全部回车跳过,详细了解*phrase
然后你会在 ~/.ssh/
这个文件夹发现新的文件
- id_rsa
- id_rsa.pub
修改本地 ssh config
修改ssh配置文件
一般位置为: ~/.ssh/config
这个文件中可能保存了多个下面这样的字段.
其中HostName、User、Port , 如果你连接过这个server, 都会保存过
你需要加入这行 IdentityFile ~/.ssh/id_rsa
Host <server_alias>
HostName <server_ip>
User root
Port 22
IdentityFile ~/.ssh/id_rsa
例子
Host myblogserver
HostName 192.168.1.20
User root
Port 22
IdentityFile ~/.ssh/id_rsa
远程
复制.pub内容到服务器上
打开 本地机器刚生成的 id_rsa.pub 文件 ,复制其内容,贴到服务器的 ~/.ssh/authorized_keys
文件内
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCspAugwQNxf8Q9O24t+CsXmXMb6YjPjM5fTElTF+6CMOZgaAikskLW0iktDNdLq8Np67LAlMa48rdYxrhhXz2STZwxDE8bPnFStWPdgrISaHWuGJJOihqncQEWIL5SurAg3zxETbbOxeiTtMeOpwlh9Qu7Qogver3BUIXjYDOjO216AuOQxnltbKr61p7/WjtiY5gLkhEX0GZzKW29ZhWvAlHi3Jos0l5wKcOP3uBW/KkVuZmqwLXdyKlVQmpm6e6LVUbEkumHoI7Wg2wqigCGrxvyUZM2v0DhBz8o3cR2A+ROrg8qpxwS2qpmxrv49RoivTE/rhXg6Us1dj+c0cIv/8rDb/2ifXqvI0CS3dk9DE0K6tDQqYRjWF8RDW+lBzTA6s3rBCp0LQwiE7e0NNZw50fRBigT1hIiJGvd0puQR1RyPBwQljhjQZnWnyu6wKiawNMX0Gu5/fYz5ct86h7RNKT7ObpeJvcP7mSVOOouv8gDbkDXkx+Ki4y9lL8Jrkxe+sT8rZz+myToh16wa+xkPI5GQVj3VQtflIcyO3DFjuwCFuogzLSolg0HUnVP0Hmw2kGBMPsKFdCwBNRFsIyblBBBX9IfhPJRmK/d9On74o/0SCQ82+eiUAXPHaaQC5erBeNXTqTzgYzxcvENh6abuLmvV0ZS8NYULRMi/lr12w== myMBP
如果没用可以尝试重启sshd服务
连接
直接在命令行执行如下语句 是的 你不需要输入 xxx@ip 这么复杂了
ssh <server_alias>
例子:
ssh myblogserver