说明:一般来说,想要连接远程 VPS 服务器,我们会在终端执行ssh username@hostname这个命令,然后输入密码来登陆,才能对远程服务器进行操作。 假如一天需要多次登录服务器,就需要反复输入很多遍密码,而像 Xshell 这样好用的软件并没有 Mac 平台的版本。每次都去翻邮件查看并复制相应的密码非常麻烦,所以咱们懒人还是配置一下免密登录服务器吧!

一、Mac下的操作

  1. 进入~/.ssh目录 在终端中输入下面的命令,进入本地~/.ssh目录。
cd ~/.ssh
  1. ~/.ssh目录中生成公钥和私钥
ssh-keygen -t rsa

然后一路按回车来忽略它让你输入的个人信息,就可以在本地的~/.ssh目录中生成私钥文件id_rsa和公钥文件id_rsa.pub

  1. 将Mac上创建的公钥id_rsa.pub上传到服务器

上传之前,我们要先登录远程 Linux 服务器,检查一下是否存在~/.ssh目录,没有的话就创建一个。

##查看是否有隐藏目录.ssh
ls -a

##有的话无需操作,没有的话就创建目录
mkdir -p ~/.ssh

然后回到 Mac 终端使用 scp 命令上传公钥文件:

##将公钥上传到Linux服务器的.ssh目录下
scp ~/.ssh/id_rsa.pub username@hostname:~/.ssh/

二、在远程Linux服务器下进行操作

  1. 使用cat将公钥添加到authorized_keys文件
##将公钥上传到Linux服务器的.ssh目录下
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
  1. 修改相应的文件权限
chmod 700 ~/.ssh/
chmod 600 ~/.ssh/authorized_keys

现在,我们可以在 Mac 的终端中使用 ssh 命令来登录服务器,发现此时已经不需要再输入密码了。

三、使用别名,更加便捷的登录远程服务器

  1. 进入编辑模式,按以下模板填写配置并保存
##进入本地~/.ssh目录
cd ~/.ssh

##创建登录配置文件
vim config

注意:#注释内容(包括#前的空格)需要删除,不然加载配置的时候可能会出现错误

Host               alias #自定义别名,可自行修改
HostName           hostname #替换为你的ssh服务器ip或domain
Port               port #ssh服务器端口,默认为22
User               user #ssh服务器用户名
IdentityFile       ~/.ssh/id_rsa #之前生成的公钥文件对应的私钥文件
  1. 在 Mac 终端中,通过输入ssh+别名就可以很方便的免密远程登录Linux服务器了!
ssh alias

文章来自:Mycheol's Blog