配置ssh密钥登录Redhat Linux(Putty,xshell)

SSH服务
1、首先查看服务器是否安装了ssh服务(以redhat为例)
yum list installed | grep openssh
必须要有:openssh.x86_64和openssh-server.x86_64
2、安装ssh服务
假如你用的是redhat,fedora,centos等系列linux发行版linux安装sshandroid linux,敲入以下命令:
  sudo yum install sshd
  sudo yum install openssh-server
假如你使用的是debian,ubuntu,linuxmint等系列的linux发行版linux安装ssh,敲入以下命令:
  sudo apt-get install sshd
  sudo apt-get install openssh-server
3、启动ssh服务
service sshd start
or
/bin/systemctl restart sshd.service
or
/etc/init.d/sshd start
or
sudo systemctl restart sshd
查看ssh服务的状态
命令:chkconfig --list sshd
输出结果:
sshd   0:关闭 1:启用 2:启用 3:启用 4:启用  5:启用 6:关闭
设置开机运行
chkconfig --level 35 sshd   //“35”来源于chkconfig --list sshd中启动“3:启用”与“5:启用”

chkconfig sshd on
4、配置ssh提高安全级别
vim  /etc/ssh/sshd_config
新增以下内容
PerminRootLogin no        //不接受root用户远程联机
PermitEmptyPasswords no   //不接受口令为空的用户远程联机
ClientAliveInterval  30   //客户端30秒内没有任何动作,服务器将发送一个alive消息给客户端
ClientAliveCountMax  4   //如果连发4次alive消息,客户端仍然没有动作,服务器将断开连接
输入命令:service sshd restart     #重启sshd使改动生效
5、Windows下使用经典的SSH软件:Putty(https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html),Xshell(https://www.xshellcn.com/)
6、为SSH服务器配置密钥认证登录
vim  /etc/ssh/sshd_config
找到“PasswordAuthentication yes”将“yes改为no”,即“PasswordAuthentication no”  //修改后,将不能使用用户名和密码的方式登录,改成用密钥方式登录主机了
service sshd restart     //重启sshd使改动生效
//假定以nboocer用户身份登录主机
ssh-keygen -t rsa  //ssh-keygen是一个完整的命令,而不是命令加选项
//会弹出下面内容
    Generating public/private rsa key pair.   //正在生成建立一对rsa密钥,包括一个公钥和一个私钥
    Enter file in which to save the key (/home/nboocer/.ssd/id_rsa):    //密钥的存放路径,直接按回车,放置在默认路径,也即/home/nboocer/.ssd/目录下
    Enter passphrase (empty for no passphrase):     //两次输入私钥口令
    Enter same passphrase again:
    Your identification has been saved in /home/nboocer/.ssh/id_rsa     //私钥放在id_rsa文件中
    Your public key has been saved in /home/nboocer/.ssh/id_rsa.pub     //对应公钥放在id_rsa.pub文件中
cd ~/.ssh
ls -l        //确认公钥与私钥是否已经生成好
cat ./id_rsa.pub >> authorized_keys     //将公钥放到stu用户指定的公钥文件中,默认是家目录/.ssh/authorized_keys文件
rm  ./id_rsa.pub         //放入后将原公钥文件及时删除
chmod 400  ./authorized_keys   //修改公钥文件的读写属性为400


7.1、使用PuTTY登录
    //通过pscp命令,将私钥“id_rsa”从Linux传到windows,用户拿到私钥后,就可以用PuTTY客户端以密钥认证的方式登录主机了,ssh-keygen命令生成的私钥,PuTTY无法直接使用,需要用PuTTYgen.exe来转换为PuTTY可以使用的私钥
    1、运行PuTTYgen.exe,点击“Load”,在文件类型中选择“All Files(*.*)”,选取服务端生成的私钥id_rsa文件,点击“OK”,会有弹话框弹出,此时需要输入建立此私钥时的口令,如果转换成功,会弹出转换成功的提示窗口,点击“确定”,进入下一步,接下来,要将转换后的私钥保存到适当的位置,该转换后的私钥将做为PuTTY登录服务器时使用的私钥,点击“Save private key”,为私钥起名字为brianKey,私钥的后缀总是.ppk,选择适当的位置保存私钥,最后关闭程序
    2、运行PuTTY.exe,进入“Configuration→Connection→SSH→Auth”(对连接时使用的私钥进行设定),在“Private key file for authentication”配置项中,点击“Browse”,选择刚刚用PuTTYgen.exe转换后的私钥brianKey.ppk文件,点击左侧的“Session”,回到主机连接信息的设置,再输入在“Host Name(or IP address)”输入IP地址,例如:192.168.10.66,在“Port”输入22,在“Saved Sessions”中输入Redhat9,再点击“Save”(下次就不用输入设置,直接使用),点击“Open”,输入正确的用户名和密码,就可以使用了;
    3、在弹出的登录窗口中输入用户名,(注意:在输入用户名后,不会出现用户密码输入提示,因为在SSH服务器配置中,我们禁止使用用户通过用户密码方式的登录),这时会出现要求输入私钥口令的提示,(此口令就是在服务器端建立brianKey用户私钥的时候设置的口令),输入私钥口令,使用私钥身份认证方式进行登录。


7.2、使用Xshell登录
    1、首先生成密钥:点击“工具→新建用户生成密钥导向”,选择“密钥类型:RSA,密钥长度:2048,下一步”,提示你正在生成公钥和私钥对,点击“下一步”,“密钥名称(K)”可以保持系统默认(id_rsa_2048),也可以输入其它的信息,如:id_rsa_redhat9,“请输入给用户密钥加密的密码,密码(P),确认(C)”(假定为:dCBA@987),再点击“下一步”,“公钥格式(P):SSH2-OpenSSH,”,这当中一大串的字符就是生成的公钥,点击“保存为文件(S)...”,文件名称为:id_rsa_2048.pub,最后点击“完成”、
   2、接下来以用户名密码的方式先登录系统,做如下配置:
      #先确保你在用户家目录里,使用pwd查看,我是brian登录,所以在/home/brian下。
      #再一个就是查看你的家目录下有没有.ssh隐藏目录,有的话直接进入,没有的话新建一个。
      mkdir  .ssh    #新建.ssh目录
      chmod 700  .ssh    #赋予.ssh目录700权限
      cd  .ssh   #进入.ssh目录
      #通过Windows的PowerShell操作的scp命令,将“id_rsa_2048.pub”从Windows传输到Linux
      cat id_rsa_2048.pub >> authorized_keys
      chmod 600  authorized_keys    #赋予authorized_keys文件600权限
      sudo vi /etc/ssh/sshd_config    #编辑sshd的配置文件,需要root权限 
      PubkeyAuthentication yes   #把前面的#号去掉
      AuthorizedKeysFile   .ssh/authorized_keys   #把前面的#号去掉,设定PublicKey文件路径
      RSAAuthentication yes            #允许RSA密钥
      PasswordAuthenticationno  yes改成PasswordAuthenticationno no  #禁止密码验证登录,如果启用的话,RSA认证登录就没有意义了
      最后保存并退出。
      /etc/init.d/sshd restar  或者  service sshd restart     #重新加载sshd服务
      PS:如果你想禁止root远程登录,就把#PermitRootLogin yes这句去掉#号改成no即可
   4、打开xshell软件,点击:“所有会话→新建(N)→会话(S)”,在“新建会话属性”窗口中点击“连接→用户身份验证”,方法(M)只需要勾选“Public Key”,再点击“设置(S)”,在弹出的“Public Key设置”对话框中,“用户密钥(K)”选择:id_rsa_2048,“密码(P)”输入“密钥加密的密码”(假定为:dCBA@987),而不是登录密码
附注
私钥,在Xshell里也叫用户密钥
公钥,在Xshell里也叫主机密钥
其它:
    1、打开Xshell工具。
    2、执行以下命令,SSH远程连接弹性云服务器。ssh 用户名@弹性IP,示例:ssh root@192.168.10.66
    3、(可选)如果系统弹窗提示“SSH安全警告”,此时,需要单击“接受并保存”。

从Linux传到windows
1、下载PuTTY(https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html): 确保您已经下载并安装了PuTTY工具集,其中包括 pscp。
2、打开命令提示符(Command Prompt): 在 Windows 上,按下 Win + R,键入 cmd 并按 Enter 打开命令提示符。
3、使用 pscp 命令: 在命令提示符中,使用 pscp 命令来复制文件。以下是基本语法:pscp username@linux-server:/path/to/source/file.txt C:\path\to\destination\
例如:
要将名为id_rsa的文件从Linux服务器的/home/brian目录复制到Windows系统的e:\share目录
pscp   brian@192.168.10.66:/home/brian/.ssh/id_rsa      e:\share\

从Windows传输到Linux
在 PowerShell 操作
scp d:\share\id_rsa_2048.pub   brian@192.168.10.66:/home/brian/.ssh
附:
    如果提示 WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!,因为远程主机环境发生变化或重新生成了SSH密钥
解决方法:清除旧的远程主机密钥: 使用如下命令:
ssh-keygen   -R   192.168.10.66

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值