Mac OS X上如何实现到Linux主机的ssh免登陆

之前在win上用secureCRT管理远程主机,因为其会记住密码,到也没觉得麻烦,但是现在用mac原生的命令行就很麻烦了,每次都需要输入密码,太影响效率了!so,还是配上证书登录吧!


首先在MAC上生成密钥对

collin@mac:~ > ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/collin/.ssh/id_rsa):
Created directory ‘/Users/collin/.ssh’.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /Users/collin/.ssh/id_rsa.
Your public key has been saved in /Users/collin/.ssh/id_rsa.pub.
The key fingerprint is:
c8:4b:85:87:90:7c:1a:67:b6:71:f5:51:0c:9d:a2:89 collin@TCMBP.local
The key’s randomart image is:
+–[ RSA 2048]—-+
| … .. o=.. |
| +.*o. …+ |
| Bo+o. o.. |
| …+E o |
| + S |
| . . |
| . |
| |
| |
+—————–+

注意:提示enter passphrase的时候,不要输入,因为你本来就想少打一次密码的,这里如果设置了用密码保护私钥,那登录的时候还是要输密码,就白做了。

做完这个步骤后,cd ~/.ssh,你就可以看到你刚才生成的密钥对,id_rsa是私钥,id_rsa.pub是公钥。下一步,就是把公钥拷贝到目标主机上。


将公钥拷贝到目标主机

#用ssh登录到目标主机后,然后进入.ssh目录
cd ~/.ssh
mkdir -p ~/.ssh。#如果目录不存在,那么要自己创建,
#你今后要用哪个帐户登录主机,就在哪个帐户的home目录下操作.
#如果要免登陆root,就要去/root下操作。使用~比较好,不会出错。

#有了.ssh目录后,进去,然后把id_rsa.pub传过去,可以用scp命令。
#这里要做的一个主要操作,就是将id_rsa.pub,的文件内容,写到一个叫authorized_keys的文件中去。
#如果目标主机的相应用户名下已经有了.ssh目录和authorized_keys文件。
#那你操作要小心一点,可能别人也做过免登陆的设置,这个时候你要小心不要把别人的设置给覆盖了。

#如果没有的话,就自己创建文件
touch ~/.ssh/authorized_keys
#然后执行下面命令将你的公钥写入到authorized_keys中
cat id_rsa.pub >> authorized_keys
#公钥文件.pub里面只有一行信息,上面的命令相当于把那一行信息追加到authorized_keys文件最后一行。


如果.ssh目录是你主机刚刚创建的,那么可能还需要改变一下这个目录的权限,将权限放低,

chmod -R 0600 ~/.ssh

到此,所有设置就算做完了,你可以退出登录,在自己的主机上试一下了,现在再敲入ssh命令后,不用密码就可以登录主机了。


配置本地ssh config文件,可以更简化登录操作

vi ~/.ssh/config
#加入以下内容:
Host collin  #别名,域名缩写
HostName chenxiong.me  #完整的域名或IP
User cssor  #登录该域名使用的账号名
PreferredAuthentications publickey  #有些情况或许需要加入此句,优先验证类型ssh
IdentityFile ~/.ssh/id_rsa #私钥文件的路径,可省略

#保存退出后,直接执行下面明亮就可以登陆了
ssh collin


最后为了安全,我们可以取消密码认证登录

#编辑/etc/ssh/sshd_config文件,更改为以下设置。
PasswordAuthentication no

标签: ssh

添加新评论