一、概述
Windows系统和Linux系统之间进行相互连接的工具有很多种,具体的可以分为如下两类:
1.Windows系统连接Linux系统
A.图形界面
如果windows系统想通过图形化界面的方式连接到Linux系统的话,windows上可以通过VNC-View客户端,Linux上安装VNC Server。
B.字符界面
windows客户端通过字符界面连接到linux系统的话,可以通过SSH或这是telnet的方式,windows可以用securecrt、putty等,linux上则需要安装telnet-server或者是openssh。
2.Linux系统连接Windows系统
A.图形界面
Linux系统可以通过rdesktop这种带有图形化界面的方式连接到windows系统。windows上需要开启远程桌面,linux上需要安装rdesktop软件。
B.字符界面
Linux系统通过字符界面连接的windows的话,可以通过telnet,但是没有图形化界面,不常用。
windows系统通过telnet的方式连接到linux系统。由于telnet是不加密的,采用明文的方式进行数据的传输,因此不安全。不允许root用户登录,可以用普通用户登录,然后su到root用户。采用的端口是23端口,因此防火墙上要开放23端口的访问。而linux上的telnet-server服务是通过xinetd这个super daemon来控制的,因此在安装telnet-server之前需要先安装xinetd。
1.安装telnet-server
yum install -y telnet-server
使用rpm –qc查看配置文件的位置:
对配置文件/etc/xinetd.d/telnet进行编辑:将其中的disable = yes改为no,即可,然后重启xinetd服务。更多的功能可以用man xinetd.conf来查看,如绑定的接口,访问源的限制,最大访问数的限制等等。
防火墙开放23端口:
iptables –A INPUT –i eth0 –p tcp –s 172.17.100.0/24 --dport 23 –j ACCEPT
无法直接使用root用户登录,但是可以用su切换到root用户。
windows下可以通过图形化界面的方式vncview来查看linux系统,linux端需要安装vnc server,所需的软件是tigervnc-server
所需软件为tigervnc-server,Linux客户端所需软件为tigervnc
tigervnc-server的配置文件为:/etc/sysconfig/vncservers
VNC server启动的端口为5901-5909这几个端口,因此防火墙端要开放这些端口。
开放防火墙规则:
iptables –A INPUT –i eth0 –p tcp –s 172.17.100.0/24 –dport 5901:5909 –j ACCEPT
命令的使用:
a.vncserver
常用的格式:vncserver [:号码] [-geometry 分辨率]
号码:表示将vncserver启动在哪一个端口,如果是:1,则表示5901,如是:5,则表示5905
-geometry 用于设置分辨率,如-geometry 800x600
如要关闭vncserver的话可以用如下选项:
vncserver -kill :号码
如:vncserver –kill :1
b.vncpasswd
用来设置客户端访问vnc server的密码。
如:
c.vncviewer
vncviewer是客户端端连接服务器的工具。
其中客户端的连接方式有2种:一种是vncviewer x.x.x.x:号码
另一种是vncviewer x.x.x.x::port-number
如:vncviewer 172.17.100.254:1
vncviewer 172.17.100.254::5901都是可以的
3.设置开机自动启动一个VNC Server
如果要想开机自动启动一个vnc server的话,则要修改其配置文件/etc/sysconfig/vncservers
修改如下:
其中1表示要显示的号码,root表示以root的身份启动。
然后将vncserver设置为开机自动启动:
chkconfig vncserver on
服务器端启动vncserver
因为我们刚才使用了vncpasswd配置了密码,如果没有配置密码的话,则这里会提示你要配置密码。
客户端连接:
点击continue继续:
输入密码,点击ok
服务器端关闭vncserver:
vncserver –kill :1
客户端登录:
1.SSH工作原理
SSH:提供该功能的软件是openssh,安装好以后就提供了两个功能,一个是SSH,另一个是SFTP。
算法:
对称加密算法:用于数据的加密和解密使用的是同一个密钥
非对称加密算法:存在有两个密钥,一个是公钥,一个是私钥,公钥用于数据的加密,私钥用于数据的解密。比如,A发送数据给B,则A要用B的公钥进行数据的加密,只有用B的私钥才能界面,同样,B发送数据给A,则B要用A的公钥进行加密,A要用自己的私钥才能解密。因此自己要有想要发送数据主机的公钥才可以。
SSH常用的加密算法有:DSA和RSA
SSH连接过程:
a.当ssh服务启动的时候,系统会主动的去找/etc/ssh/ssh_host_*里面的公钥和私钥,如果没有的话,则会主动的计算出公钥和私钥。如下所示:
b.客户端连接到服务器上时,服务器端就会将产生的公钥发送给客户端。
c.如果客户端是第一次连接到服务器,则会将服务器发来的公钥保存在自己的家目录下的.ssh/known_hosts文件里面,如果不是第一次连接到服务器,则客户端会比对此次接收到的公钥与自己保存的公钥是否一致,如果一致,则直接就可以登录,如果不一致,则拒绝登录,解决方法就是将known_hosts文件里面的相应的数据删除掉。如果客户端接受了这个公钥数据,则客户端开始计算出自己的公钥和私钥数据。
d.客户端将自己的公钥发送个服务器,此时服务器具有客户端的公钥和自己的私钥,客户端具有自己的私钥和服务器的公钥。
默认情况下,提供SSH功能的软件名是openssh,默认情况下是已经安装的,如果没有安装可以用yum来安装
默认的端口为TCP的22端口。
/etc/ssh/sshd_config是服务器端的配置文件
/etc/ssh/ssh_config是客户端的配置文件,通常不需要修改。
/etc/ssh/ssh_host_*是公钥和私钥数据
linux客户端的连接命令:
格式:
ssh [–f] [–p port] [username@ip] [command]
-f:后面接的是命令,也就是说不登陆远程主机,直接在远程主机上执行相应的命令
-p:如果ssh开启的不是22端口,而是其他端口的话,则要用-p选项
username@ip:是连接的格式,如果没有输入username,直接输入IP的话,则连接的用户名默认为当前用户的用户名。
command:是在远程主机上直接执行的命令
3.SFTP文件传输
Openssh在安装时默认提供了一个好用的文件传输工具,就是SFTP。SFTP也是采用22端口,包括SCP都是使用22端口。
SFTP的使用:
格式:sftp account@ip
通常情况下,sftp在不知道对方主机上有什么文件时可以进行浏览,下载或上传自己想要的文件,如果知道文件名的话,则可以用scp这个指令进行文件的上传和下载。
上传:scp –p –r –l file1 file2 account@ip:dir
下载:scp –p –r –l account@ip:file local_dir
-p:保留源文件的属性
-r:递归复制,用于目录
-l:限速。单位为Kbit/s
4.SSH服务器的配置
Port 22:为ssh默认使用的端口,如果想使用其他端口的话,则要用Port xxx,然后重启sshd服务。
Protocol:定义ssh所使用的版本。默认为版本2,如果要支持版本1的话,则要用Protocol 2,1
ListenAddress 0.0.0.0:为SSH服务监听的网卡地址。在多网卡环境中可以使用,默认为所有端口都监听。
PidFile /var/run/sshd.pid:为sshd的进程号所放置的位置。默认
LoginGraceTime 2m:当客户端连接服务器时,要输入密码,如果在指定的时间内没有连上服务器的话,则强迫客户端断线。默认为秒,这里为2分钟,即120s
# HostKey for protocol version 1
#HostKey /etc/ssh/ssh_host_key
# HostKeys for protocol version 2
#HostKey /etc/ssh/ssh_host_rsa_key
#HostKey /etc/ssh/ssh_host_dsa_key
这些为版本1和版本2的私钥放置的位置
SyslogFacility AUTHPRIV:这个主要就是将登录的日志记录在哪里,这里为/var/log/secure里面。
#LogLevel INFO:记录的日志等级
#PermitRootLogin yes:表示是否允许root登录
#StrictModes yes:这个是设置是否允许sshd去检查用户的家目录里面的档案的权限设置
PasswordAuthentication yes:设置是否需要密码认证
#PermitEmptyPasswords no:设置是否允许空密码登录
banner :显示一些提示信息
具体的信息可以用man sshd_config来查看
步骤:
a.在客户端上使用ssh-keygen产生一对公钥和私钥。如果没有指定加密算法,则默认的为RSA,在输入密码时直接回车,不输入密码。使用特定的加密算法的话,可以用ssh-keygen –t rsa|dsa。全部回车。
b.进入到产生公钥和私钥的文件,默认为/root/.ssh/目录下,其中.ssh目录的权限必须是700的权限,且id_rsa为私钥,id_rsa.pub为公钥。
c.使用scp将这个公钥上传到要连接的服务器,也放在服务器的/root/.ssh/目录下,并且文件名为authorized_keys。并且.ssh目录的权限也要为700。
客户端:
服务器:
测试:
注意:如果在测试的时候,如果还需要密码的话,可以将上面一步的scp换成ssh-copy-id来替代,这种方法更加简单。
使用方法:ssh-copy-id root@172.17.100.254
通过RDP,在windows上可以连接到linux上。linux上需要安装xrdp软件,并且xrdp是依赖于vnc的,因此linux上要先安装tigervnc-server。xrdp在启动的过程中需要启动127.0.0.1的3350端口,而3350端口需要呼叫5910-5920端口来提供VNC的画面,因此防火墙要放开3389端口以及127.0.0.1的3350和5910-5920端口。
1.下载并安装xrdp软件
2.启动xrdp
观察端口:
输入用户名和密码后,点击OK,如登录失败,可以多尝试几次。
注意:有时查看PATH变量时,显示的东西比较少,可能有些命令无法执行,这是可以修改 /etc/X11/xinit/xinitrc这个文件,将PATH变量值加进去即可。
Linux下通过rdesktop连接到windows上,需要下载rdesktop软件并上传到linux系统上。
1.安装rdesktop
2.rdesktop的使用
格式:rdesktop [options] server[:port]
options:
-u <username>
-d domain
-p <password>
-g <geometry>设置分辨率
-r后面可以接上挂载的本地磁盘
测试:
windows一定要配置密码,且要开启远程桌面,linux上一定要放行3389端口。
Linux下的securecrt的安装和使用
1.安装securecrt
从官网上下载securecrt,并上传到Linux系统上
然后使用yum install –y scrt-7.1.0-244.rhel6-64.x86_64.rpm来安装
2.SecrureCRT的使用
启动SecrureCRT的命令是SecrureCRT
点击I agree
其他的操作和windows一样。
不过有一点要注意的是,这个crt有试用期的,
如果想要没有试用期的话,可以进入到当前用户的家目录下的.vandyke/SecureCRT/Config/目录下,将其中的SecureCRT_eval.lic删除,这个就是license文件,删除后,重新启动CRT这个文件还会产生的,重新产生后的一个新的license时间就变成了30天了。
本文出自 “HeZhang” 博客,请务必保留此出处http://hezhang.blog.51cto.com/1347601/1360665
原文:http://kingzeus.blog.51cto.com/8504664/1360620