以证书的方式登录ssh
常常要登录多台Linux服务器,过去在Windows下使用SecureCRT,比较省心,配置还可以放到云盘,实时同步。现在改用MAC貌似就没有那么好用的东西了,每次ssh命令登录都需要输入密码,很烦。最终找到iTerm + 以证书方式登录ssh,基本能解决需要记忆ip和用户名密码的问题。具体步骤如下:
一、以证书的方式登录ssh
假设要从机器A ssh到 机器B,则称A为客户端,B为服务器。
1、首先在客户端生成证书,运行命令,会得到如下内容:
$ ssh-keygen -t rsa Generating public/private rsa key pair. Enter file in which to save the key (/Users/palance/.ssh/id_rsa): <name> Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in <name>. Your public key has been saved in <name>.pub. The key fingerprint is: SHA256:7ut9SExi8YHdgUlGnpFgZaq8w8cLlBiBr6ZVFTamAV8 xxxx@xxxxdeMacBook-Pro.local
该命令会在当前目录生成私钥文件(<name>)、公钥文件(<name>.pub),同时要求你输入一个私钥的密码,这在后面会用到。
2、在客户端执行
scp <name>.pub <username>@<ssh_server_ip>:~
cp <name> ~/.ssh/
把公钥文件拷到服务器,私钥文件拷到本地~/.ssh下面。
3、在服务器执行
cat <name>.pub >> ~/.ssh/authorized_keys
搞定!
在客户端执行
ssh -i ~/.ssh/<name> <username>@<ssh_server_ip>
第一次会让输入私钥密码,加入本地钥匙串,以后就可以直接登录。
二、使用iTerm添加新的Profile,在Command中填入:ssh -i ~/.ssh/<name> <username>@<ssh_server_ip>
即可。