linux上配置ssh免登录操作

/ linux / 0 条评论 / 882浏览

linux上配置ssh免登录操作

一.背景

假设现在有两台服务器,A和B,如果想在A上登录B,然后操作B,我们知道,和在windows上一样的方式,可以使用ssh -p 用户名@ip,然后输入密码即可,但是如果现在希望免登录,也就是面输入密码那么应该如何操作呢?

二.操作

  1. 在服务器A上生成公钥和私钥
cd /root/.ssh/
ssh-keygen

生成后如下:

[root@server01_12_146 .ssh]# ls
authorized_keys  id_rsa  id_rsa.pub  known_hosts

这里的id_rsa就是私钥文件,id_rsa_pub就是公钥文件

ps: 1.默认使用的是rsa非对称加密的方式,当然也可以自己制定加密方式ssh-keygen -t 加密方式 2.生成秘钥的过程会提示你输入一个密码,但是可以忽略(方便点可以忽略,如果输了秘钥那么比如在=jenkins配置ssh的时候就需要添加密码了)
2. 将公钥复制到目标服务器B

将id_rsa.pub文件内容全部复制追加到B服务器/root/.ssh/该目录下的authorized_keys文件中,该文件可包含多个公钥

ps:如果发现出现问题,可以考虑一下是否是复制的问题,可以使用scp,或者szrz将公钥下载下来再上传到B服务器,然后在B上直接使用cat id_rsa.pub >> authorized_keys追加,不建议直接复制,任意出错

  1. 免登录操作尝试
#使用默认端口22
ssh root@ip
#使用指定的端口(比如我在工作中使用的服务器的ssh端口配置的是2015)
ssh -p 端口 root@ip
#端口和用户名和本机当前用户名一样 如都是 22 root
ssh ip
  1. 免登录后进入B服务器后,可以使用exit命令退回到A服务器

三.补充

配置好ssh免登录之后,像使用服务器之间互传文件的scp时就可以直接免输入密码了

scp -P B服务器的ssh端口(默认是22) A服务器上的某个文件 用户名@B服务器ip:上传到B服务器上的目录位置