Linux主要应用于服务器领域,而服务器不可能像PC机那样置于办公室,它们是置于IDC机房的,所以阿铭平常登陆Linux系统都是通过网路远程登陆的。

Linux系统通过SSHD服务实现远程登陆功能。这个SSHD服务默认开启了22端口,当我们安装完系统时,该服务早已安装,而且是开机启动的。所以,我们不须要额外配置哪些能够直接远程登陆Linux系统。SSHD服务的配置文件为/etc/ssh/sshd_config,你可以依照需求更改这个配置文件,例如我们可以修改启动端口为11587,但这个数字不要超过65535。

假如你安装的是Windows操作系统,则须要额外安装一个Linux远程登陆的终端软件。目前比较常见的终端登陆软件有MobaXterm、Xshell、SecureCRT、PuTTY等。好多同学喜欢用SecureCRT,由于它的功能十分强悍,而阿铭喜欢用PuTTY,由于它精巧且显示的颜色漂亮。近来阿铭也在使用MobaXterm,也十分不错,值得你们研究一下。但不管你使用哪一个顾客端软件,最终的目的只有一个——远程登陆到Linux服务器上。下边章节阿铭会带着你们学习并使用MobaXterm工具。

4.1安装MobaXterm

MobaXterm有免费版和收费版,其中免费版有session数目限制,假如你所管理的服务器数目很大LINUX社区,建议订购收费版。MobaXterm外置了SFTP、FTP、Telnet、VNC顾客端,十分实用。其官网地址为:。

4.1.1下载MobaXterm

前些年网上曾报导过,某个英文版的PuTTY被别有用心的黑客动了四肢,给植了侧门,像这些SSH顾客端软件被植入侧门,后果会特别严重。所以阿铭提醒诸位男子伴,之后不管你下载哪些软件,尽量去该软件的官方站点下载,假若不晓得地址,可以到百度或则bing搜一下。MobaXterm的官方下载地址为。打开下载页面后,我们可以看见有HomeEdition和ProfessionalEdition两个版本,其中HomeEdition为免费版,并且最多只支持12个session,对于我们学习来说足够了。

runmqsc命令使用_linux使用telnet命令_linuxrz命令使用

点击Downloadnow按键步入下载页,此时可以看见它又分成了Portableedition和Installeredtion,其中Portableedition为免安装版本,建议你们下载个Installerediton。

4.1.2安装

下载MobaXterm的安装包后,双击MobaXterm_Installer_v22.1.zip,之后再双击MobaXterm_installer_22.1.msi步入安装界面。

runmqsc命令使用_linuxrz命令使用_linux使用telnet命令

直接单击Next按键,勾选IacceptthetermsintheLicenseAgreement,继续点Next按键和Install按键即可完成安装。

4.2远程登陆

在上一章中,我们早已给Rocky设置了IP地址(192.168.195.101),但是这个IP地址是静态的,就算你的VMware重启过,它也不会变。设置IP地址的目的不仅要使用yum工具外,另一个作用就是远程联接Linux操作系统了。

4.2.1使用密码直接登陆

打开MobaXterm后,请根据如下步骤联接远程Linux服务器。

1)创建session

填写Linux基本信息的对话框如右图所示,

linuxrz命令使用_runmqsc命令使用_linux使用telnet命令

其中HostName(orIPaddress)这一栏填写服务器IP为192.168.195.101,SpecifyUsername拿来定义要登入的用户名,由于我们要登陆root用户,所以这儿写root,Port这栏采用默认设置即可。Bootmarksettings拿来定义session的名子,这儿你可以自定义,主要拿来分辨主机,由于将来你的主机会好多,写个简单的名子既便捷记忆又能快速查找。

点确认后,即可步入到登入界面,此时须要输入密码

runmqsc命令使用_linux使用telnet命令_linuxrz命令使用

输入密码后回车,弹出是否须要保存密码的提示,假如想要保存密码,就点Yes。

linuxrz命令使用_runmqsc命令使用_linux使用telnet命令

之后继续定义MasterPassword

linuxrz命令使用_runmqsc命令使用_linux使用telnet命令

之后再点击OK,总算步入Linux系统了。

runmqsc命令使用_linux使用telnet命令_linuxrz命令使用

4.2.2使用秘钥认证

SSH服务支持一种安全认证机制,即秘钥认证。所谓秘钥认证,实际上是使用一对加密的字符串:其中一个称为私钥(publickey),用于加密,任何人都可以见到其内容;另一个称为公钥(privatekey),用于揭秘,只有拥有者能够看见其内容。通过私钥加密过的密文,使用公钥可以轻松揭秘,但按照私钥来推测公钥却非常困难。SSH的秘钥认证就是使用了这一特点。

服务器和顾客端都各自拥有自己的私钥和公钥,MobaXterm可以使用秘钥认证登陆Linux,具体的操作步骤如下。

1)生成秘钥对

在菜单中找到Tools,之后选择MobaKeyGen单击。

linux使用telnet命令_runmqsc命令使用_linuxrz命令使用

单击Generate,注意,这儿要来回动一动键盘,否则生成秘钥会很慢。

runmqsc命令使用_linux使用telnet命令_linuxrz命令使用

其中红框上面的内容就是私钥,这部份内容可以直接用键盘选中,之后按Ctrlc复制,等会要粘贴到Linux上面去。

linuxrz命令使用_linux使用telnet命令_runmqsc命令使用

runmqsc命令使用_linux使用telnet命令_linuxrz命令使用

你还可以定义秘钥的密码,如右图红框所示,也可以留空,即秘钥不设置密码。

linux使用telnet命令_runmqsc命令使用_linuxrz命令使用

2)保存公钥

点击SavePrivateKey保存公钥,请把它保存到一个比较安全的地方,避免遗失或被其他人听到。之后就可以关掉该窗口啦。

3)复制私钥到Linux

下边我们把刚复制的私钥粘贴到Linux的文件中。下边请跟随阿铭一上去操作,运行如下命令

# mkdir /root/.ssh //创建/root/.ssh目录,因为这个目录默认是不存在的# chmod 700 /root/.ssh //更改这个目录的权限# vi /root/.ssh/authorized_keys//把公钥内容粘贴到文件/root/.ssh/authorized_keys里

关于mkdir和chmod这两个命令,阿铭会分别在下一章节中详尽介绍。在vi命令以后直接回车,输入i步入编辑模式,之后单击键盘右键,它会弹出一个提示框,我们选择下边的选项,意思是点击右键直接粘贴,这是MobaXterm工具十分便捷的一个功能。

runmqsc命令使用_linuxrz命令使用_linux使用telnet命令

粘贴后,按Esc键linux使用telnet命令,之后输入:wq并回车,保存并退出该文件。

4)关掉SELinux

关于SELinux,上一章我们也提及过,它是Rocky的一种安全机制,它的存在似乎让Linux系统安全了好多,但也形成了不少麻烦。这儿倘若不关掉SELinux,使用秘钥登陆会提示Serverrefusedourkey,因而造成不能成功。须要运行如下命令来关掉SELinux:

# setenforce 0

这只是暂时关掉,上次重启Linux后,SELinux就会开启。若要永久关掉,必须运行如下命令:

# vi /etc/selinux/config

回车后,把光标联通到SELINUX=enforcing这一行,输入i步入编辑模式,更改为SELINUX=disabled。按Esc键,之后输入:wq并回车,最后重启系统。

5)设置通过秘钥登陆

找到刚刚保存的session,右键单击,选择EditSession。

linuxrz命令使用_runmqsc命令使用_linux使用telnet命令

单击AdvancedSSHsettings,找到下边的Useprivatekey勾选上,之后选择刚才保存的公钥文件

linuxrz命令使用_runmqsc命令使用_linux使用telnet命令

6)使用秘钥验证登陆Linux

点击ok后,双击昨天的session,就可以手动登入了,然而这还不能确定是否使用了秘钥,虽然我们昨天的密码也被保存到了MobaXterm里,也不用输入密码才能登入,你可以通过下边的命令查看日志:

# journalctl -u sshd

假如有听到Acceptedpublickeyforroot字眼就说明秘钥认证成功了。假如当初生成秘钥时你有设置密码,则在登陆时须要输入秘钥密码才可以登入系统。有好多同学在做秘钥认证的时侯会失败,只要你注意这几点就一定可以成功:

如果你还有一台机器要使用秘钥验证登陆Linux,你学会怎样设置了吗?MobaXterm的设置方式是一样的,使用同样的公钥,不须要你再度生成秘钥对了。另外,把192.168.195.101上的文件/root/.ssh/authorized_keys复制一份到另一台机器就可以了。请注意,这个文件的名子是固定的。

在本例中,阿铭教你们的是直接使用秘钥登陆root用户,但在工作中好多同学登陆的是普通用户,而不是root。那普通用户的秘钥认证怎么设置呢?原理肯定是一样的,同样要先有秘钥对,之后把私钥放在服务器上linux使用telnet命令,不过并不是/root/.ssh目录下边了,而是普通用户家目录下边的.ssh目录下。那普通用户家目录在那里?第6章提到用户管理时,阿铭会详尽介绍,在这儿阿铭举一个反例linux怎么读,例如你登入的普通用户为aming,这么aming用户的家目录为/home/aming。还有一点你们要注意,在Linux机器上所做的操作(如创建.ssh目录)也必须以aming用户身分操作才可以。

4.3两台Linux互相登陆

既然可以在Windows上安装一个顾客端软件(例如MobaXterm)去登陆远程的Linux,这么在Linux上是否也可以登入另一台Linux呢?其实,在Linux上也须要安装一个顾客端软件。Rocky自带的顾客端软件叫作openssh-clients。

检查是否安装,须要运行如下命令:

# ssh -VOpenSSH_8.0p1, OpenSSL 1.1.1kFIPS 25 Mar 2021

这样会显示出OpenSSH的版本信息。假如没有显示类似的信息,请运行如下命令安装:

# yum install -yopenssh-clients

4.3.1克隆Rocky

要完成本实验,还须要有一台Linux机器,你可以根据2.2节再安装一台Rocky。但阿铭认为那样做太浪费时间,虽然还有一个更好的方式——克隆虚拟机。

首先,关掉正在运行的Rocky,正确的死机命令是shutdown-hnow或则init0。之后在右边对应的虚拟机名子上单击键盘右键,选择“管理”,再选择“克隆”,如右图所示。

linuxrz命令使用_linux使用telnet命令_runmqsc命令使用

此时会出现“克隆向导”界面。直接点击“下一步”按钮,再点击“下一步”按钮,会出现“克隆类型”对话框,这儿采用默认值即可,即选择“创建链接克隆”,这种类型会节约空间,比较便捷。继续点击“下一步”按钮,你可以设定克隆虚拟机的名称和保存的路径。接着点击“完成”和“关闭”按钮,最终完成Rocky8的克隆。此时,不管是在右边“我的笔记本”下面还是在左侧“选项卡”,都多下来一个克隆后的Rocky8虚拟机。

把两台Rocky8全部启动。先登入克隆的虚拟机,使用3.2章节的方式给这台Rocky8也配置一个静态IP地址。

为了容易分辨两台Rocky8,下边阿铭教你设置主机名。我们不妨给第一台起个名子aminglinux-01,第二台叫作aminglinux-02。请在第一台Rocky8上运行如下命令:

# hostnamectl set-hostname  aminglinux-01

可以使用快捷键Ctrl+D退出当前终端,之后再登入一次,都会发觉命令行一侧的前缀有所变化了。使用同样的方式,也将第二台Rocky8的主机名设置为aminglinux-02。

4.3.2使用密码登入

使用上面的方式,通过PuTTY远程登陆aminglinuxlinux-02,之后在这台机器上执行如下命令:

# ssh root@192.168.195.102 //第一次登录对方机器,有一个提示The authenticity of host '192.168.195.102(192.168.195.102)' can't beestablished.ECDSA key fingerprint is26:e3:97:e7:bb:ae:17:33:ea:aa:0c:5f:37:0e:9e:fa.Are you sure you want to continue connecting (yes/no)

这儿我们输入yes,之后回车,又出现一个如下的警告,它的意思是保存了192.168.195.102这台机器的信息:

Warning: Permanently added '192.168.195.102' (ECDSA) to the list ofknown hosts.root@192.168.195.102's password:

之后输入192.168.195.102的root密码后,成功登陆aminglinux-02。

这儿符号@后面的root表示要以远程机器那个用户的身分登入。我们可以省略root@,即写成ssh192.168.195.102,它也表示以root用户身分登入。这个并不是固定的,它取决于当前系统的当前用户是谁。我们可以使用如下命令查看当前用户:

# whoamiroot

也可以写成:

# who am iroot pts/1        2022-09-17 07:06 (192.168.195.101)

从这两个命令的显示结果可以看出它们的区别:一个是简单显示,一个是复杂显示。前者除了可以显示username,还可以显示登陆的终端、登录时间以及从那里登陆。

4.3.3使用秘钥登陆

既然MobarXterm支持使用秘钥验证的形式登陆Linux机器,这么Linux下的顾客端软件也是支持的。下边请跟随阿铭一步一步来操作。

1)顾客端生成秘钥对

如果aminglinux-01为顾客端(以下简称01),aminglinux-02为要登陆的机器(以下简称02)。首先,把刚才登陆的02退出来,直接使用Ctrl+D快捷键即可。之后在01上执行如下命令:

# ssh-keygenGenerating public/private rsa key pair.Enter file in which to save the key (/root/.ssh/id_rsa):

这个命令拿来生成秘钥对。首先,它让我们定义公钥的储存路径,默认路径为/root/.ssh/id_rsa。这儿采用默认值即可,直接回车,此时会显示如下信息:

Enter passphrase (empty for no passphrase):

之后它让我们定义公钥的密码,可以留空,直接回车即可,此时会显示如下信息:

Enter same passphrase again:

此时它让我们再一次输入密码,之后回车,此时会显示如下信息:

Your identification has been saved in /root/.ssh/id_rsa.Your public key has been saved in /root/.ssh/id_rsa.pub.The key fingerprint is:57:15:10:d6:8a:ed:79:83:0b:fc:d7:21:52:5b:ba:83 root@aminglinux-01The key's randomart image is:+--[ RSA 2048]----+| ++o. || . ..  || o..   || ..o. . || S....o+  || .o.++o. || ooooo.|| Eoo. .|| ..  |+-----------------+

最终生成了秘钥对,你可以在/root/.ssh/目录下找到私钥(id_rsa.pub)和公钥(id_rsa)。

2)把私钥复制到要登陆的机器上

首先,我们查看01上私钥的内容,此时运行如下命令:

# cat /root/.ssh/id_rsa.pubssh-rsaAAAAB3NzaC1yc2EAAAADAQABAAABAQDiAUXQihX9pa1oxml6xRjZhjTRCU+QMHUGXU34Q6gBeK/8Qm0hUqPfyASXbV2y6hKH4MHfX4zQcpnkeTgyeIFuKAxoEX98mx8r4owB7X490CH+H8JCRsM9FYlAsbH+kvdIa+sNTMqD5jEY5dh+gNINDDNJiw250cYG9Pe8Y+5slazPYrC0tjWz+AnXhJ1//r9z077rxEMJ1jHZdEn62hIou46i8xny+znJScSeW0uJHTgeX5EbXrArgSUOXyubtsGrov83dSUa39Kfyk4HvXU0azYI8S3h6ZxUOed0dYmic4EMd5VxYPnrgNEgTCRlP3hx/sOCCr0HSWtv+MvREkGdroot@aminglinux-01

将那些字符串全部复制,之后粘贴到02上的文件/root/.ssh/authorized_keys里。若之前早已创建过这个文件,而且早已粘贴过MobaXterm的私钥,则须要另起一行粘贴01的私钥。在02上执行如下命令:

# vi /root/.ssh/authorized_keys

假如有内容,可以按字母G把光标定位到文件末尾,之后输入o步入编辑模式(这儿使用的命令和之前有所不同,请先跟随阿铭操作)。单击键盘右键即可粘贴01的私钥。之后按Esc键,输入:wq,再回车。假如你之前并没有设置MobaXterm的私钥,请继续执行以下命令:

# chmod 600 /root/.ssh/authorized_keys

3)登陆Linux

在01上执行如下命令:

# ssh 192.168.195.102

此时就不再提示我们输入密码,就可以直接登入到02了。这样就可以实现Linux通过秘钥验证的方法登陆Linux。假如你在生成秘钥对时设置了密码,这么这儿也会提示你输入秘钥密码。为了便捷跨机器执行命令,这儿我们特意不设置秘钥的密码(前面会用到)。

4)使用ssh-copy-id

Linux系统里还有一种更便捷做秘钥认证的方式。此次阿铭要让02通过秘钥认证登陆01。在02上执行如下命令:

# ssh-keygen# ssh-copy-id root@192.168.195.101

它会提示让我们输入01的root密码,只要输入对了对方服务器的密码就完成了秘钥认证。再度尝试ssh登陆01,此时就不再提示我们输入密码,可以直接登入到01了。

往期文章

Author

这篇优质的内容由TA贡献而来

刘遄

《Linux就该这么学》书籍作者,RHCA认证架构师,教育学(计算机专业硕士)。

发表回复