配置客户端免密远程登陆Linux服务器和GitHub

客户端:

Windows

MacOS

Linux

服务器:

Linux

配置免密登陆步骤:

1.生成私钥文件

在客户端终端下输入以下命令

ssh-keygen -t rsa

每次执行 ssh-keygen -t rsa 产生的私钥文件都会不同

如果文件"~/.ssh/id_rsa"存在,会提示是否覆盖该文件,此时可选择"n"不覆盖该文件而使用已有的id_rsa文件

如果选择"y"则会重新生成"~/.ssh/id_rsa"文件。

接下来会提示输入passphrase,回车确定使用空的passphrase,再次回车确认

(这里如果输入密码的话,后续登陆每次都要输入这个密码,与未配置免密登陆没有太多区别,如果是要省去输入密码的麻烦则建议不要输入密码,回车即可)。

然后会重新生成id_rsa文件和id_rsa.pub文件(在~/.ssh目录下)


2.在终端中执行scp远程拷贝命令

scp ~/.ssh/id_rsa.pub your_username@your_server_ip:~/.ssh

将生成的id_rsa.pub文件拷贝到远程服务器的 ~/.ssh 目录下

此时还需要输入root用户密码进行访问

3.将公钥追加到授权KEY里面

在服务器终端下输入下面的命令

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

如果远程服务器上已经存在"~/.ssh/authorized_keys"文件,那么需要编辑服务器上"~/.ssh/authorized_keys"文件,将客户端机器上的"id_rsa.pub"文件内容追加到"~/.ssh/authorized_keys"文件中。

如果服务器上没有"~/.ssh/authorized_keys"文件,执行下面这条命令

cp   id_rsa.pub   authorized_keys

即将公钥复制为authorized_keys文件

然后即可把id_rsa.pub删掉

rm id_rsa.pub

4. 设置权限并重启ssh服务

生成authorized_keys ,修改authorized_keys权限为600 .ssh文件夹权限为700 公钥私钥权限为644后。

ssh 登陆 发现还是要输入密码。

进行了ssh -v 命令调试,发现报了访问私钥的异常。

最后排查发现 root/文件夹的权限不对。按照sshd的要求/root/ 文件夹的权限应该为700 或者755 

解决方案 chmod  700 ~


5.客户端测试连接

command+N新建终端窗口,输入ssh登录命令

此时不需要再输入密码就可以访问远程服务器,scp等基于ssh的命令同样不需要密码了


6. 用于GitHub免密登录

第一步生成的id_rsa.pub文件也可以用于github的免密登录。

如何找到http://github.com上的ssh设置:右上角图标(view profile and more)=》Settings =》 SSH and GPG keys,在Key输入框中输入公钥(id_rsa.pub中的文件内容)。

你可能感兴趣的:(配置客户端免密远程登陆Linux服务器和GitHub)