Mac os 下能够直接在终端中使用内置的ssh命令,经过ssh-key来访问远程服务器。经过证书登陆服务器能够保证安全性,还能提升登陆的速度,免去输入密码的麻烦。安全
Mac os 下,ssh证书是默认存放在 ~/.ssh 目录下的,Linux系统也是如此。默认的ssh-key文件是:id_rsa 和 id_rsa.pub。服务器
你可使用一个ssh-key用于多个服务器之间的登陆,也能够针对不一样的服务器,使用不一样的ssh-key文件。dom
下面介绍使用一个自定义的ssh-key文件访问特定的服务器。ssh
mac默认提供了ssh-keygen,咱们可使用此工具来生成公钥和私钥。ide
MacBook-Pro:~ henry$ ssh-keygen Generating public/private rsa key pair. Enter file in which to save the key (/Users/henry/.ssh/id_rsa): /Users/henry/.ssh/test_rsa #询问保存路径,若是默认,则在当前用户的 ~/.ssh 目录下生成id_rsa文件。这里咱们自定义一个key,取名:test_rsa Enter passphrase (empty for no passphrase): #若是你想用密码来保护你的证书,能够选择在这里输入。 Enter same passphrase again: #若是输入了密码,须要再次输入该密码 Your identification has been saved in /Users/henry/.ssh/test_rsa. Your public key has been saved in /Users/henry/.ssh/test_rsa.pub. The key fingerprint is: SHA256:V4RNi8fLUgeiCRMY6UJU8YR73SQ//JTgdSMBjyBJKws henry@MacBook-Pro.local The key's randomart image is: +---[RSA 2048]----+ | ...+BBo. o==. | | . +o.=.++B+oo | | .E...o.oBooB+.. | | ..oo. . *=oo | | ... S o+o | | . .. | | | | | | | +----[SHA256]-----+
在该操做后,咱们生成了一个key,包括私钥和公钥,分别是:工具
/Users/henry/.ssh/test_rsa /Users/henry/.ssh/test_rsa.pub
可使用rsync或scp或ssh-copy-id。spa
1.使用rsync或scp的方法(两者选择其一便可):code
rsync -av ~/.ssh/test_rsa.pub username@remote:~/.ssh/authorized_keys scp ~/.ssh/test_rsa.pub username@remote:~/.ssh/authorized_keys
2.使用ssh-copy-id的方法:ip
点击ssh-copy-id查看工具获取方法。
必需要使用参数i指定公钥的路径。否则传送的公钥会出现错误,内容被替换为错误信息『The agent has no identities.』。rem
ssh-copy-id -i ~/.ssh/test_rsa.pub username@remoteMachine
在 ~/.ssh 目录下,有个文件:config。要使用特定的私钥访问特定的服务器,须要在config里作相应的配置,否则,ssh工具会默认使用 id_rsa 的私钥进行登陆验证。若是不是自定义的key,能够不作该操做。
config文件的地址: ~/.ssh/config
举个栗子?,咱们想用test_rsa这个私钥来访问服务器:11.11.11.11(随便写一个),登陆的用户名是username,config里的配置以下:
# 登陆服务器:11.11.11.11,使用私钥test_rsa Host 11.11.11.11 User username IdentityFile ~/.ssh/test_rsa
设置好上面几步以后,就能够用 ssh-key 来登陆远程服务器了,直接在终端中使用 ssh 命令便可。
好比,要访问服务器的IP地址是:11.11.11.11
ssh 11.11.11.11
若是用户名没有错的话,就能够登陆成功了。