如何使用Linux远程连接工具
在我们日常管理与维护服务器个过程中,我们都需要使用远程连接工具,今天我们就一同来总结下Linux常用的安全远程连接工具-OpenSSH。
远程登录协议
1、telnet:是TCP/IP协议族中的一员,是Internet远程登陆服务的标准协议和主要方式。它为用户提供了在本地计算机上完成远程主
机工作的能力。默认使用的是TCP的23号端口,采用C/S架构,在用户登录的过程中传输的信息都是明文信息,安全无法保障,所以不建议用telnet。
2、ssh:为Secure Shell 的缩写,由IETF的网络工作小组所制定;SSH
为建立在应用层和传输层基础上的安全协议。SSH是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用 SSH
协议可以有效防止远程管理过程中的信息泄露问题。默认使用的是TCP的22号端口,也是基于C/S架构,SSH有两个版本v1与v2。
sshv1:基于CRC-32做MAC(消息摘要认证),不安全,强烈建议不使用;
sshv2:基于双方主机的协商选择使用最安全的MAC方式 ,其有如下特点:1、加密机制及MAC机制由双方协商选定;2、基于DH实现密钥交换,基于RSA或DSA实现身份认证;3、客户端通过检查服务器端的主机密钥来判断是否能够继续通信;
OpenSSH简述
OpenSSH 是一组用于安全地访问远程计算机的连接工具。它可以作为rlogin、rsh
rcp以及telnet的直接替代品使用。更进一步,其他任何TCP/IP连接都可以通过SSH安全地进行隧道/转发。OpenSSH
对所有的传输进行加密,从而有效地阻止了窃听、连接劫持,以及其他网络级的攻击。OpenSSH 由 OpenBSD project 维护。
登录过程和使用rlogin或telnet建立的会话非常类似。在连接时,SSH
会利用一个密钥指纹系统来验证服务器的真实性。只有在第一次连接时,用户会被要求输入yes进行确认,之后的连接将会验证预先保存下来的密钥指纹。如果保
存的指纹与登录时接收到的不符, 则将会给出警告。 指纹保存在 ~/ssh/known_hosts中,对于SSHv2指纹,则是
~/ssh/known_hosts2。
默认情况下,较新版本的OpenSSH只接受SSHv2连接。如果能用版本2则客户程序会自动使用,否则它会返回使用版本1的模式。此外,也可以通
过命令行参数-1或-2来相应地强制使用版本1或2。 保持客户端的版本1能力是为了考虑较早版本的兼容性,建议尽量使用版本2。
SSH服务器和客户端工作流程
OpenSSH使用C/S架构:
服务端工具(S):sshd
客户端工具(C):ssh命令、putty、xshell、securecrt、sshshellclient;
OpenSSH客户端组件-ssh
配置文本:/etc/ssh/ssh_config
使用方法:
ssh [username@] host [COMMAND]或 ssh -l username host [COMMAND]
-p PORT:指定远程服务器端口;
-l username:指定登录远程主机的用户,不指定则使用当前用户;
username@:等同于 -l username;
如果设置了COMMAND,表示使用username账户登录远程主机执行一次指定的命令并返回结果,不会停留在远程主机上;
[root@www ~]# ssh 1921680110 #使用root用户登录;
The authenticity of host '1921680110 (1921680110)' can't be established
RSA key fingerprint is 01:2e:43:cc:bc:1d:f1:e5:f0:f4:89:78:74:a9:49:44
Are you sure you want to continue connecting (yes/no) yes #第一次连接,需手动进行确认;
Warning: Permanently added '1921680110' (RSA) to the list of known hosts
root@1921680110's password: #输入远程主机root账户的密码;
Last login: Mon May 11 16:44:52 2015 from 1921680104
[root@mailCentOS6 ~]# #登录成功了,远程主机名为mailCentOS6;
[root@mailCentOS6 ~]# ls #显示远程主机root家目录下的文件;
2sh bootiso installlog sdbmbr test1
anaconda-kscfg crontab installlogsyslog \temp\test
[root@mailCentOS6 ~]# exit #退出登录;
logout
Connection to 1921680110 closed
[root@www ~]# ssh root@1921680110 ls #使用root登录远程主机,执行一次ls命令,返回结果便退出;
root@1921680110's password: #第二次连接,就不需要输入yes了,直接输入密码即可;
2sh
anaconda-kscfg
bootiso
crontab
installlog
installlogsyslog
sdbmbr
\temp\test
test1
[root@www ~]# #看到了吗,我们当前并没有登录在远程主机;
OpenSSH服务器端组件-sshd
配置文件:/etc/ssh/sshd_config(通过修改此文件可以修改ssh的默认监听端口与其他参数)
服务脚本:/etc/rcd/initd/sshd
服务启动|停止|重启:serveice sshd start|stop|restart
脚本配置文件:/etc/sysconfig/sshd
配置参数
# man sshd_config 查看配置参数的说明;
# vim /etc/sysconfig/sshd 通过编辑配置文件来修改配置参数;
#+空格+文字:以此格式开头的行表示改行为注释说明;
#+文字:以此格式开头的行表示可启用选项,不改变则表示使用该选项的默认设置,反之使用设定值“#”要去掉哦!
例:#Port 22 如不去掉#且22不变,表示使用默认的22号端口;
若把#Port 22改成port 7777,表示把sshd的监听端口改成7777;
注意:修改参数与配置后,必须重启服务(service sshd restart)
经常需要修改的参数:
[root@www ~]# cat /etc/ssh/sshd_config
# $OpenBSD: sshd_config,v 180 2008/07/02 02:24:18 djm Exp $
# This is the sshd server system-wide configuration file See
# sshd_config(5) for more information
# This sshd was compiled with PATH=/usr/local/bin:/bin:/usr/bin
# The strategy used for options in the default sshd_config shipped with
# OpenSSH is to specify options with their default value where
# possible, but leave them commented Uncommented options change a
# default value
#Port 22 #修改默认监听的端口;
port 7777 #把sshd的监听端口改成7777;
#AddressFamily any #监听的地址家族,指定是监听在IPV4上还是IPV6上,any表示所有;
#ListenAddress 0000 #指定监听的地址 (0000表示本机的所有地址);
#ListenAddress ::
# Disable legacy (protocol version 1) support in the server for new
# installations In future the default will change to require explicit
# activation of protocol 1
Protocol 2
# HostKey for protocol version 1
#HostKey /etc/ssh/ssh_host_key #使用shhv1用到的主机密钥;
# HostKeys for protocol version 2
#HostKey /etc/ssh/ssh_host_rsa_key
#HostKey /etc/ssh/ssh_host_dsa_key
# Lifetime and size of ephemeral version 1 server key
#KeyRegenerationInterval 1h
#ServerKeyBits 1024 #密钥长度;
# Logging
# obsoletes QuietMode and FascistLogging
#SyslogFacility AUTH
SyslogFacility AUTHPRIV
#LogLevel INFO
# Authentication:
#LoginGraceTime 2m #登录宽限期;
#PermitRootLogin yes #是否允许管理员直接登录;
#StrictModes yes
#MaxAuthTries 6 #最大密码输入错误次数;
#MaxSessions 10 #最大会话个数;
#RSAAuthentication yes #是否允许使用RSA机制来认证;
#PubkeyAuthentication yes
#--------中间不长改变的配置参数略----------
Subsystem sftp /usr/libexec/openssh/sftp-server #表示是否启动sftp功能;
# Example of overriding settings on a per-user basis
#Match User anoncvs
# X11Forwarding no
# AllowTcpForwarding no
# ForceCommand cvs server
sshd认证方式:
1、基于口令的认证;
2、基于密钥的认证;
# ssh-keygen -t rsa 用rsa算法生成密钥,默认密钥为id_rsa(私钥), id_rsapub(公钥)
# ssh-keygen -f /path/to/somefile -P oldpassword 根据现有的密钥文件生成密钥
-f /path/to/somefile: 密钥文件保存在的位置;
-P '': 指定生成旧密钥时使用的密码;
方法一:把本地主机生成的公钥 id_rsapub使用scp复制到远程主机的上,在远程主机使用cat id_rsapub>>ssh/authorized_keys追加该公钥信息,这样就可以实现基于密钥认证的ssh登录;
方法二:# ssh-copy-id -i ssh/id_rsapub USERNAME@HOST
[root@www ~]# ssh-keygen -t rsa #用rsa算法生成密钥;
Generating public/private rsa key pair
Enter file in which to save the key (/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_rsapub
The key fingerprint is:
c2:f9:c2:3d:4d:ca:52:39:7a:a7:33:de:42:11:d3:8f root@www99com
The key's randomart image is:
+--[ RSA 2048]----+
| |
| o |
| o o |
| E |
| + S |
| B= |
| =B o |
| ++= |
| o+ |
+-----------------+
[root@www ~]# ssh-keygen -f ssh/id_rsa -P '' #根据现有密钥文件重新生成密钥;
Generating public/private rsa key pair
ssh/id_rsa already exists
Overwrite (y/n) y #提示是否确定要覆盖;
Your identification has been saved in ssh/id_rsa
Your public key has been saved in ssh/id_rsapub
The key fingerprint is:
bf:55:f0:0b:a5:ee:4e:4a:1d:d3:b1:0e:66:ee:55:9b root@www99com
The key's randomart image is:
+--[ RSA 2048]----+
| |
| |
| o |
| o |
| S O = |
| B oo|
| o +E |
| B |
| o+ |
+-----------------+
#-----使用方法一:实现通过密钥文件完成身份验证(不需要输入密码)-----
[root@www ~]# scp ssh/id_rsapub root@1921680110:/root/ #使用spc命令复制公钥文件到远程
#主机的用户家目录下的ss/路径下;
root@1921680110's password: #输入登录远程主机的密码;
id_rsapub 100% 397 04KB/s 00:00 #提示复制成功;
[root@mailCentOS6 ~]# ls ssh/ #验证确认文件复制成功;
id_rsapub known_hosts
[root@mailCentOS6 ~]# touch ssh/authorized_keys #路径内没有自动验证密钥文件,创建一个;
[root@mailCentOS6 ~]# cat ssh/id_rsapub >> ssh/authorized_keys #把公钥追加到自动验证密钥文件;
[root@www ~]# ssh 1921680110
Last login: Mon May 11 20:45:10 2015 from 1921680111
[root@mailCentOS6 ~]# #OK了,看到了没有,不用输入密码我们就直接可以远程登录了!!
#-----使用方法二:实现通过密钥文件完成身份验证(不需要输入密码)-----
[root@mailCentOS6 ~]# rm -f ssh/authorized_keys #删除原有保存的自动验证密钥文件;
[root@www ~]# ssh-copy-id -i ssh/id_rsapub root@1921680110 #使用命令自动传输生成自动验证密钥文件;
root@1921680110's password:
Now try logging into the machine, with "ssh 'root@1921680110'", and check in:
ssh/authorized_keys #提示生成的文件;
to make sure we haven't added extra keys that you weren't expecting
[root@www ~]# ssh 1921680110 #验证看看是否可以登录;
Last login: Mon May 11 21:02:29 2015 from 1921680111
[root@mailCentOS6 ~]# ls ssh/ #看到了没有,我们现在已经登录到了mailCentOS6这台主机上了;
authorized_keys known_hosts
命令补充
scp: 利用ssh协议在主机之间实现安全文件传输的工具
scp SRC1 DEST
分两种情形:
1、源文件在本机,目标为远程主机
# scp /path/to/somefile USERNAME@HOST:/path/to/somewhere
源可以是目录或文件有多个,目标必须是目录
2、源文件在远程,本地为目标
# scp USERNAME@HOST:/path/to/somewhere /path/to/somewhere
-r: 复制目录时使用(实现递归复制),scp默认不能复制目录;
-p: 保持源文件的元数据信息,包括mode和timestamp
-q: 静默模式,复制过程不显示状态信息;
-p PORT: 指定ssh协议监听的端口(远程主机)。
Linux大多应用于服务器,而服务器不可能像PC一样放在办公室,它们是放在IDC机房的,所以我平时登录linux系统都是通过远程登录的。Linux系统中是通过ssh服务实现的远程登录功能。默认ssh服务开启了22端口,而且当我们安装完系统时,这个服务已经安装,并且是开机启动的。所以不需要我们额外配置什么就能直接远程登录linux系统。ssh服务的配置文件为
/etc/ssh/sshd_config,你可以修改这个配置文件来实现你想要的ssh服务。比如你可以更改启动端口为36000
如果你是windows的操作系统,则Linux远程登录需要在我们的机器上额外安装一个终端软件。目前比较常见的终端登录软件有SecureCRT,
Putty, SSH Secure
Shell等,很多朋友喜欢用SecureCRT因为它的功能是很强大的,而笔者喜欢用Putty,只是因为它的小巧以及非常漂亮的颜色显示。不管你使用哪一个客户端软件,最终的目的只有一个,就是远程登录到linux服务器上。这些软件网上有很多免费版的,你可以下载一个试着玩玩。下面笔者介绍如何使用Putty登录远程linux服务器。
如果你下载了putty,请双击puttyexe
然后弹出如下的窗口。笔者所用putty为英文版的,如果你觉得英文的用着别扭,可以下载一个中文版的。
因为是远程登录,所以你要登录的服务器一定会有一个IP或者主机名。请在Host Name( or IP address)
下面的框中输入你要登录的远程服务器IP(如果你的linux还没有IP,那么请自行设置一个IP,如何设置请到后续章节查找),然后回车。
此时,提示我们输入要登录的用户名。
输入root 然后回车,再输入密码,就能登录到远程的linux系统了。
阿里云服务器开始运营以来,非常受广大用户欢迎,可配置型强、安全性高、性价比实惠。PHP网站虽然可以放在windows主机里,但是最适合的还是linux主机,因为其不需要花费大量的内存、CPU在界面管理上,而且linux也是其原生系统,所以性能相对肯定会强点,但是因为没有像windows那样友好的操作界面,所以管理起来比较不容易,只能靠记住一些代码来实现,这里方维网络教大家一些基本的LINUX指令,从而能够管理阿里云主机。
1、要知道如何远程连接到服务器,目前Linux远程连接工具有很多种,您可以选择顺手的工具使用。下面使用的是名为Putty的Linux远程连接工具。该工具是免费的,且不需要安装,在网上方便地下载到。下载以后直接运行程序,然后再Hostname里填写服务器IP就行,然后点击OPEN。如下图所示:
然后进入一个类似DOS操作界面,输入用户名密码即可连接服务器,这里需要注意的是,密码是不显示的,所以只要键盘输入,然后确认就行的,第一次操作的朋友经常以为没有输入,到这里就卡住了。如下图所示
2、如果用户名密码输入正确,会出现登录成功的提示,如下图
3、登录成功后就可以执行一些指令:
cd 进入目录
创建文件用touch 例如:touch 1txt
删除文件用rm 例如:rm -f 1txt
创建目录用mkdir 例如:mkdir daiyuanqi
删除空目录用rmdir 例如:rmdir daiyuanqi (有东西的目录不能删)
删除装有东西的目录就用rm -rf 例如rm -rf XXX
进入vi的命令
vi filename :打开或新建文件,并将光标置于第一行首
vi n filename :打开文件,并将光标置于第n行首
vi filename :打开文件,并将光标置于一行首
vi /pattern filename:打开文件,并将光标置于第一个与pattern匹配的串处
vi -r filename :在上次正用vi编辑时发生系统崩溃,恢复filename
vi filenamefilename :打开多个文件,依次进行编辑
保存命令
按ESC键 跳到命令模式,然后:
:w 保存文件但不退出vi
:w file 将修改另外保存到file中,不退出vi
:w! 强制保存,不推出vi
:wq 保存文件并退出vi
:wq! 强制保存文件,并退出vi
q: 不保存文件,退出vi
:q! 不保存文件,强制退出vi
:e! 放弃所有修改,从上次保存文件开始再编辑
1、putty
putty是最有名的SSH和telnet客户端,由Simon Tatham为Windows平台开发。putty是一款开源软件,提供可用的源代码并有一批志愿者进行开发和支持。
2、secureCRT
secureCRT支持SSH,同时支持Telnet和rlogin协议。secureCRT是一款用于连接运行包括Windows、Unix和VMS的理想工具。通过使用内含的VCP命令行程序可以进行加密文件的传输。有流行CRTTelnet客户机的所有特点,包括:自动注册、对不同主机保持不同的特性、打印功能、颜色设置、可变屏幕尺寸、用户定义的键位图和优良的VT100、VT102、VT220和ANSI竞争,能从命令行中运行或从浏览器中运行。其它特点包括文本手稿、易于使用的工具条、用户的键位图编辑器、可定制的ANSI颜色等。secureCRT的SSH协议支持DES、3DES和RC4密码和密码与RSA鉴别。
3、EasySSH
EasySSH是一款便捷的GUI SSH客户端,提供了一种连接远程Linux服务器的快捷工具。
尽管EasySSH没有提供Putty中提供的大量配置选项,但是它非常易于使用。EasySSH的最佳功能之一是提供标签式界面,因此你可以打开多个SSH连接并在它们之间快速切换。
EasySSH的功能包括:分组、保存用户名密码、外观选项、支持本地和远程隧道。
4、Xshell
Xshell是一个强大的安全终端模拟软件,它支持SSH1、SSH2以及Microsoft
Windows平台的TELNET协议。xshell通过互联网到远程主机的安全连接以及它创新性的设计和特色帮助用户在复杂的网络环境中享受他们的工作。
五个非常好用的Linux远程连接工具:
第一款:Xshell(https://wwwnetsarangcom)
Xshell是一个非常强大的安全终端模拟软件,它支持SSH1,SSH2,以及Windows平台的TELNET协议。Xshell可以在Windows界面下用来访问远端不同系统下的服务器,从而比较好的达到远程控制终端的目的,Xshell非常符合使用习惯,值得推荐。
优点:
①界面设计简洁,人性化,用起来比较舒服。
②支持标签,打开多个会话链接的时候比较方便。
③可以保存密码,方便下次直接使用,当然要做好电脑安全防护。
④支持rz和sz命令,这两个命令在传输少量小文件时非常方便。
⑤图形化支持本地和远程文件之间的传输,方便系统部署和日志排查。
第二款:winscp(https://winscpnet/eng/docs/lang:chs)
winscp是一个Windows环境下使用SSH的开源图形化SFTP工具客户端。同时支持SCP协议,它的主要功能就是在本地与远程计算机间安全的复制传输文件。winscp+putty软件配套使用。
优点:
①简洁的图形用户界面。
②Windows完美集成。
③完美支持所有常用文件操作。
④可以批处理脚本和命令行方式。
⑤多种半自动、自动的目录同步方式。
⑥内置文本编辑器。
⑦可以存储会话信息,方便下次使用。
⑧可将设置存在配置文件中而非注册表中,适合在移动存储设备上操作。
第三款:PuTTY(puttyorg/)
PuTTY是SSH和telnet客户端,最初由Simon
Tatham为Windows平台开发。用MIT许可证授权,包含的组件有:PuTTY、PuTTYgen、PSFTP、PuTTYtel、Plink、PSCP、Pageant,默认登录协议是SSH,默认的端口为22。PuTTY主要用来远程连接服务器,它支持SSH、Telnet、Serial等协议的连接。最常用的是SSH协议,用它来远程管理Linux服务器非常方便。
优点:
①完全免费开源。
②跨平台。
③绿色软件,体积不到1M,不需要安装,占用系统资源少。
④完全支持SSH1和SSH2。
第四款:MobaXterm(/mobaxtermmobateknet/)
MobaXterm的功能非常全面,几乎提供了所有重要的远程网络工具,以及Windows桌面上的Unix命令,登录之后默认开启sftp模式。
优点:
①功能非常全,基本上涵盖了服务器运维所有功能。
②免费开源。
③丰富的插件。
④超多好用的快捷键,效率非常高。
⑤支持多标签,切换也十分方便。
第五款:FinalShell(http://wwwhostbufcom/)
FinalShell是一体化的服务器网络管理软件,不仅是SSH客户端,FinalShell还是功能强大的开发、运维工具,充分满足用户的开发运维需求。
优点:
①跨平台。
②支持内存、CPU性能监控,Ping延迟丢包,Trace路由监控。
③支持rz、sz。
0条评论