MAC下生成密钥,并使用ssh密钥登录

步骤一:打开终端,输入:

ssh-keygen -t rsa -C "youremail@qq.com"

一路欢快的回车,所有默认都不用改,就可以生成密钥了。

引号内是你唯一Email,这里可以作为以后Git远程仓库使用。

 

步骤二:查看生成的公钥和私钥:

ls ~/.ssh

可以看到两个密钥文件:id_rsa(私钥) id_rsa.pub(公钥)  ———— 我的本机的~是/Users/linfeng,可以通过pwd查看当前所在的路径

 

步骤三:登录远程服务器,在~目录下创建.ssh文件夹,要先切换到/root/目录下哦。(此时root账号的家目录就是/root/)

mkdir .ssh

————再补充一个知识点,~表示当前用户的家目录,对于root来说,就是/root/,对于普通用户来说,就是/home/user/,可以切换到~并使用pwd查看。所以如果是普通用户,则需要把.ssh建在/home/user/下。

  

步骤四:放置公钥到Linux服务器的用户家目录的.ssh目录下,并重命名为authorized_keys。使用scp命令:

scp ~/.ssh/id_rsa.pub root@121.42.xxx.xxx:/root/.ssh/authorized_keys

 

步骤五:服务器上切换到.ssh目录下,对authorized_keys和.ssh赋予权限:

chmod 700 .ssh
chmod 600 authorized_keys

————请注意,此时.ssh目录的权限应该是700,只有属主有读、写、执行的权限。

 

步骤六:免密码登录到服务器:——无需输入密码了。

ssh root@121.42.xxx.xxx    //方式一
ssh -l root 121.42.xxx.xxx      //方式二

 ——请注意,这时候只是可以免密码登录,但是没有密钥的人(如其他人的电脑),还是能通过密码登录。

——这步请直接测试是否可以免密登录,如果可以的话,第七步第2)就可以不用操作。

 

步骤七:设置禁止密码登录

1)打开ssh配置文件:

sudo vim /etc/ssh/sshd_config

 

2)去掉以下的注释:——其实不注释,我的机器上默认值也是yes,因为在第六步的时候,我已经可以免密码登录了。所以为可选项

#RSAAuthentication yes    // RSA认证,我的机子上没有这个选项,也不需要。
#PubkeyAuthentication yes    // 公钥登录,这个好像不需要注释掉也没事。
#AuthorizedKeysFile %h/.ssh/authorized_keys  // 验证文件的位置,这个默认是开启的。

 ——我的实践中,这项全部都不需要修改

 

3)禁止密码和 root账号登录,修改以下为no:

PasswordAuthentication no    // 禁止密码登录。原先为PasswordAuthentication yes
PermitRootLogin no           //禁止 root 登录,看情况是否需要。原先为PermitRootLogin yes

 

4)重启ssh服务

service ssh restart   //或者service ssh reload,有可能碰到并未开启ssh服务的报错,执行下面的那句。
/etc/init.d/sshd restart    //上面一句无法执行的时候,执行这句。
systemctl restart sshd    //centOS7以上请使用这句

 

 

八、其他:

1、指定秘钥和端口登录:(正常端口都是 22,你改了才需要指定),秘钥最好也用同一个

ssh -i ~/.ssh/hk_sshkey username@121.42.xx.xx -p 23

2、添加其他机器登录使用一个用户登录。

将公钥内容添加到服务器 authorized_keys 里面即可

 

 

 

 

 

 

 

————占位符

 

posted @ 2017-12-08 13:58  小寒1206  阅读(6570)  评论(0编辑  收藏  举报