引自:http://www.opsers.org/videos/xshell-through-ssh-key-ssh-proxy-to-connect-linux-server-detailed.html
引言
使用SSH客户端来登陆Linux系统,我相信大家肯定都用过,只是选择的SSH客户端的软件不同而已,在Windows系统下,用的比较多就应该 就是PUTTY,SecureCRT,Xshell这三个吧。大家是不是曾经在进行服务器管理的时候,会遇到一些交互的处理问题,比如说自动化的命令需要 密码的时候,我们就不能自动完成。所以我们会用到关于SSH密钥的一些问题,那么我今天就以Xshell为例,来给大家讲解一下如何用SSH登陆,而无需 输入密码。当然,也可以通过Linux系统上的SSH来实现此功能,只是实现的方法略有不同。后面我也做个简单的教程出来供大家分享。
Xshell增加一个对话
在开始正式内容之前,我们先来看看Xshell的一个基本设置:新增一个会话(new session)
OK,现在我们进入我们今天的内容。这里做一个说明:系统为RHEL6,我们把他当作Linux服务器,本文由普通的用户名+密码认证、密钥认证、 密钥+输入密钥密码认证、代理认证ssh-agent(密钥+密钥密码+无需密码输入)这四个内容来给大家讲解,希望能给大家一个抛砖引玉的作用。
1、普通的用户名+密码认证
这个不用多说,默认情况下,都是用用户名和密码来认证登陆的,自行增加一个会话,每次连接的时候,打开会话就OK了,具体的设置,可能参考上面的关 于Xshell的基本设置。所以我们就略过,不过,如果说,你连这个都搞不定的话,那么,下面的内容也就无法时行下去了。哈哈……
2、密钥认证
所谓的密钥认证,就是在本地配置一个私钥和一个公钥,然后把公钥传要你想连接的服务器,就能实现无需输入用户名和密码的目的。这个就如同是制造了一 个钥匙(私钥)和一把锁(公钥)一样,而这把锁可以复制到多台服务器,这样我只要用我的这个钥匙,就可以打开多个服务器的锁了。所以说,要启用密钥认证, 关键就是制造钥匙和锁。下面就来看看,在Xshell上如何来制造。
选中我们新创建的会话,对其属性进行更改
Xshell自动创建密钥文件
设置密钥文件名,我们这里先不为密钥设置密码
保存公钥文件
选择刚刚创建的私钥
设置登陆的用户
这样,我们就有了一个公钥和私钥了,接下来,就是把生成的公钥上传到服务器了。
我们直接用Xshell自带的一个sftp功能来上传我们生成的文件(我把公钥文件保存在我的WIN7系统桌面上)
打开Xshell后,应该出现下面的提示符
Xshell:\>
我们需要设置一下本地的工作目录,方便我们上传文件(如下图)
我们用sftp来连接远程的服务器,然后上传我们的公钥文件
Xshell:\> sftp root@192.168.6.10
这时候不要选择私钥登陆啊,因为我们还没有进行配置,所以必需使用密码登陆(如图)
Connecting to 192.168.6.10:22…
Connection established.
Escape character is ‘^@]’.
Your current local directory is
C:\Users\Administrator\Desktop
Type `help’ to browse available commnands.
sftp:/root>
出面上面的提示,就表示我们登陆上服务器了,关于SFTP的命令命令,大家可以用help来查看帮助。下面我们就向服务器传文件了
我们在服务器的root目录下保存我们的公钥,当然,你可以放到其他的位置,只是这个文件的位置,我们需要记住,因为后面的SSHD设置需要他。
sftp:/root> put id_rsa_2048.pub
Uploading id_rsa_2048.pub to remote:/root/id_rsa_2048.pub
sftp:/root/.ssh> exit
OK,我们上传上去了,下面我们就用SSH的普通方法(用户名和密码)登陆服务器,然后修改我们的sshd_config配置文件,启用密钥认证,关闭用户名、密码认证。
Xshell:\> ssh root@192.168.6.10
还是先用用户名密码来登陆
[root@yufei ~]# vim /etc/ssh/sshd_config
启用下面两个内容,并设置好相应的公钥文件位置
PubkeyAuthentication yes
AuthorizedKeysFile /root/id_rsa_2048.pub
关于密码认证,我们暂时先不关闭,以防万一啊!!
也就是PasswordAuthentication yes这个先不禁止。
保存退出后,重新启动SSHD服务
[root@yufei ~]# service sshd restart
注意:如果你的系统是RHEL6,并且没有关掉SELinux的话,在登陆的时候,你会发现始终需要你输入密码,而我们并没有设置密码啊,这是为什么呢? 刚开始的时候我也很奇怪,我在RHEL5上测试是正常的,可一到RHEL6上就是不行,折腾了半天,发现是SELinux惹的祸啊!没有关系,我们关闭掉 他就OK了。
[root@yufei ~]# setenforce 0
[root@yufei ~]# exit
这时候,你就可以重新换用密钥方式登陆了,已经无需输入任何密码。
3、密钥+输入密钥密码认证
和上面是一样的,只是在创建证书的时候,输入密码就可以了,注意,一定要把原来客户端的证书文件换成现在的,如果还是用以前的话,会导致你远程的SSH登陆不上系统了。
设置了密钥的密码后,在使用密钥登陆的时候,就需要输入相应的密钥密码,输入后,就能正常登陆了。但这虽然增加了安全性,但他的交互性又没有了,想要既使用密钥+密钥密码方式来登陆,又不输入密码,就需要用ssh-agent来实现。
4、代理认证ssh-agent(密钥+密钥密码+无需密码输入)
在上面认证的基础上,我们在服务器上再次配置sshd_config文件
开启
AllowAgentForwarding yes
重新启动
然后在Xshell中开启Agent方式
只要上面的没有问题,那么我们就可以用Xshell再次登陆测试了,这次登陆,只需要输入一次密钥密码,以后都无需再输入密码了。
结束语
大家觉得这个可能实用性不太大,但如果我们在Linux系统上管理其他多台Linux服务器的时候,你会发觉真的很方便,关于在Linux系统上, 如何来实现上面的功能,我将在下一篇文章中给出。如果说,你对此文有什么疑问的话,请与我留言。本文第二个写的比较详细,而后面两个比较简单,如果你领会 了第二个的话,那么剩下的两种就没有什么难度了。
相关推荐
《Xshell连接Linux工具详解》 在IT领域,特别是服务器管理与运维中,Linux系统扮演着至关重要的角色。为了方便地远程管理和操控Linux系统,我们通常会借助一些终端模拟器工具,其中Xshell是一个广受欢迎的选择。...
**Xshell 7.0 SSH工具详解** Xshell 7.0是一款强大的终端模拟器,专为IT专业人员设计,特别是在远程服务器管理、网络配置和系统管理员任务中扮演着重要角色。SSH(Secure Shell)是一种网络协议,用于安全地通过不...
Xshell 5.0.1339p 是一款强大的终端模拟器,尤其在IT行业中,它被广泛用于通过SSH(Secure Shell)协议连接到Linux服务器进行远程管理。SSH是一种网络协议,用于安全地在不安全的网络上执行命令行操作,例如文件传输...
在使用Ubuntu 20.04 LTS (Long Term Support) 版本时,有时我们会遇到通过Xshell等SSH客户端连接服务器时出现错误的情况。本文将详细介绍这个问题的原因以及解决方法。 一、问题描述 当你尝试使用Xshell通过SSH...
XShell通过SSH连接到远程服务器,确保了数据的机密性和完整性。在XShell中,你可以轻松创建、保存和管理各种SSH连接配置,包括主机名、端口号、用户名、密码或密钥对等信息。这使得用户可以快速地切换到不同的服务器...
- **远程连接**:Xshell支持SSH1、SSH2、telnet、rlogin和Serial等协议,可以连接到各种类型的服务器,包括但不限于Linux、Unix、FreeBSD等操作系统。 - **多标签管理**:用户可以在同一个窗口中打开多个标签页,...
**XSHELL 4.0:Linux平台上的SSH工具详解** XSHELL 4.0是一款针对Linux平台设计的强大SSH(Secure Shell)终端模拟器,由Netsarang公司开发。SSH是一种网络协议,用于在不安全的网络环境中提供安全的远程登录和其他...
- 完成密钥配置后,可以尝试使用Xshell或Xftp5连接远程服务器。 - 成功连接后,应该不再需要输入密码。 #### 四、密钥管理和安全注意事项 1. **密钥备份**:定期备份密钥文件是非常重要的,以防意外丢失。 2. **...
**Xshell5:Linux远程连接工具详解** Xshell5是一款强大的终端模拟器,专为Linux系统的远程连接设计,尤其适合初学者以及专业人士进行Linux环境的学习和管理。它提供了丰富的功能,包括SSH、Telnet、RDP、SFTP等...
在给定的文件名称列表中,“Xme4附加密钥”可能是指Xshell4的密钥文件,这可能是用于设置SSH密钥认证的私钥文件,确保只有拥有正确密钥的用户才能进行连接。 除此之外,Xshell4还具备其他高级功能,如文件传输...
3. **安全性**: Xshell 提供了SSH1、SSH2、telnet、rlogin和串口等多种安全连接协议,确保你的数据传输安全无虞。 4. **自定义快捷键**: 用户可以根据个人习惯设置快捷键,快速执行常用命令,减少手动输入时间。 5...
**Xshell远程连接工具详解** Xshell是一款强大的远程连接工具,尤其在IT行业中,它被广泛用于连接Linux服务器进行各种运维工作。通过Xshell,用户可以在Windows操作系统上方便地操作远程Linux服务器,实现命令行...
在“会话”管理中,你可以创建、编辑和保存多个服务器连接信息,方便日后快速访问。此外,XShell支持多标签窗口,使得同时管理多个远程服务器成为可能,这对于需要处理复杂网络环境的IT人员来说是极其便利的。 ...
通过Xshell4,我们可以方便地进行SSH(Secure Shell)连接,进行文本模式下的操作,如命令行输入、文件传输等,极大地提升了在Linux系统上的工作效率。 首先,我们需要了解SSH协议。SSH是一种网络协议,用于安全地...
**Xshell远程连接工具详解** Xshell是一款强大的远程连接软件,尤其在IT行业中,它被广泛应用于Linux系统的管理与操作。这款工具以其丰富的功能、稳定的表现以及用户友好的界面,深受程序员、系统管理员和网络...
**Xshell7.0.0039:Linux连接终端工具详解** Xshell是一款功能强大的终端模拟器,尤其适用于Linux操作系统。它由NetSarang公司开发,为用户提供了一个直观且高效的界面,来管理和控制远程服务器。在Xshell 7.0.0039...
在Windows平台上,可以使用SSH客户端工具如xshell或SecureCRT来连接Linux服务器。安装这些软件后,根据提示配置主机名、端口号和认证方式,即可实现安全的远程连接。 SSH的配置主要涉及服务器端和客户端两部分。在...
2. **标签式会话管理**:可以在同一个窗口内管理多个Linux服务器连接,通过标签页切换,提高工作效率。 3. **脚本支持**:可以编写和执行Bash脚本,批量处理任务。 4. **传输文件**:集成的SFTP功能允许你直接在...
### XShell配置Linux免密登录知识点详解 #### 一、引言 在日常工作中,频繁地登录远程Linux服务器是IT人员常见的操作之一。为了提高工作效率并简化登录过程,免密登录成为了一种实用且高效的方法。本文将详细介绍...