linux中公钥设置和远程登陆

  首先申明,如下内容均源于网络,全部的命令提示,解释都是预先学习了网上的大牛们且本身进行了实验。此处只是随笔/记录,便于本人之后学习,也便于大牛指正理解错误的地方!!nginx

如有大牛发现问题还请在评论区指教。算法

公钥和私钥的生成shell

ssh-keygen命令专门是用来生成密钥的。你们能够谷歌一下(条件不容许百度一下也行)。vim

这里列出了最基本的四个:ruby

  1.-t 用来指定密钥类型(dsa | ecdsa | ed25519 | rsa | rsa1  一般咱们经常使用dsa和rsa算法进行加密,能够百度搜下);服务器

  2.-P 用来指定密语;网络

  3.-f 用来指定生成的密钥文件名;dom

  4.-C 用来添加注释。ssh

命令:ide

ssh-keygen -t rsa -P 123456 -f test -C 'my test key'

解释:

就是新建了密语为123456注释为my test key文件名为test的密钥。此命令会生成testtest.pub两个文件,前者为私钥文件,后者为公钥文件。若是你想免密登陆的话,请将密语设置为空。

另外:请注意ssh-keygen是用短线符号链接在一块儿的,不要分开,中间若是有空格会报错:

Bad escape character 'ygen'.———很差的转义字符“ygen”。

 

也能够不用输这么长的命令一步一步的来根据提示操做:

命令:

ssh-keygen -t rsa  

 

截图没截好,最后无字的红色箭头文字内容为:到你建立公钥目录下去找test(私钥)和test.pub(公钥)两个文件

 

将公钥部署到服务器

上一步生成了公钥和私钥后,须要将公钥部署到服务器并用私钥登陆。使用/winscp/xhell/secureCRT/scp或者你的工具将公钥上传到服务器并将文件内容追加到~/.ssh/authorized_keys中。例如:

#在本机上执行此命令,上传公钥
1.xshell/secureCRT:
rz -e 找到test test。pub文件目录
2.scp: scp -P your_port test.pub user@hostname:/tmp
3.winscp:
选择上传,或者直接拖放至目标文件夹 #在服务器上执行此命令,追加到authorized_keys(这个名字能够本身取,但后面使用要用对) cd /home/ && cat test.pub >> ~/.ssh/authorized_keys #更改权限 chmod 600 ~/.ssh/authorized_keys

更改服务器配置

  1.xhell/secureCRT等链接工具:

  执行vim /etc/ssh/ssh_config打开ssh_config

    # IdentityFile ~/.ssh/identity

    # IdentityFile ~/.ssh/id_rsa

    # IdentityFile ~/.ssh/id_dsa

    

 

    把前面#去掉,而后在 IdentityFile 后填写你用来执行ssh时所用的密钥

  

  2.scp链接修改,将以下的配置打开:

  执行vim /etc/ssh/sshd_config打开sshd_config配置文件

   RSAAuthentication yes    PubkeyAuthentication yes    AuthorizedKeysFile  .ssh/authorized_keys

    重启sshdservice sshd restart或者systemctl restart sshd.service。重启以后,服务器已经支持远程ssh链接了

 

推荐使用1方法,方便。2方法有点难找。

链接服务器

1.xhell/secureCRT链接服务器的,直接导入私钥并链接就行(推荐)

2.经过ssh命令来远程链接服务器,执行ssh -p your_port username@domain -i your_private_certification命令,就能够链接到服务器。

pS:

若是只容许服务器经过公钥和私钥的方式来链接服务器,可将服务器配置文件/etc/ssh/sshd_config中的PasswordAuthentication yes改成PasswordAuthentication No

 

在重启sshd时先不要关闭当前的链接,当你确认经过私钥能链接到服务器再关闭,否则,一旦私钥连不上,你又把密码链接方式给禁用了,那就链接不上服务器了(反正我是不知道怎么连了)。

相关文章
相关标签/搜索