#rpm -qa|grep ssh
客户端软件涉及ssh,scp,sftp等。
服务器端配置文件是/etc/ssh/sshd_config
客户端配置文件是/etc/ssh/ssh_config
在客户端执行
#ssh 用户名@192.168.1.1 //使用192.168.1.1某一指定的用户名和系统密码登陆
系统默认是不允许以root用户远程的,如果想使root可以登录,要将/etc/ssh/sshd_config文件中的PermitRootLogin no中的“no”改为“yes”,然后重新启动ssh服务
密钥
密钥是一个数字证书,它是用来声明“这就是我,真的是我,我发誓”。借助于加密的功劳,SSH客户端可以向服务器证明自己的密钥是真实的。
SSH证书使用一对密钥:一个私钥,一个公钥。
私钥只保存你独有的一些秘密信息。SSH客户端用其向服务器证明自己的身份。公钥是公开的,可以随便将其放入SSH服务器上的自己的账号中,在认证时,SSH客户端和服务器要进行一次有关私钥和公钥的 协商。
如果私钥和公钥可以匹配,那么身份就得到了证明,认证就成功了。
在客户端执行
#ssh-keygen -t rsa(不输入密码,这样使用ssh登录时不需要输入密码就可以登录,如果输入了密码那么登录时也要求输入相同的密码)
把生成的公钥拷贝到ssh服务器上
#scp /root/.ssh/id_rsa.pub 192.168.1.1:/root
并在服务器上执行
#cat id_rsa.pub>>/root/.ssh/authorized_keys //将公钥的内容追加到授权文件authorized_keys中
再次ssh时就不用密码了,因为服务器上有客户端的公钥,客户端的私钥与在服务器上公钥能匹配
如果想以服务器的普通用户test验证登录,则要将公钥id_rsa.pub同样追加到服务器的/home/test/.ssh中即test用户的家目录的.ssh目录下的授权文件中
#cat id_rsa.pub>>/home/test/.ssh/authorized_keys
注:用户家目录下.ssh目录权限为755,authorized_keys文件的权限为644,且他们的所有者和所有者组都为root
协商过程:
1.客户端说“嗨!服务器,我想通过SSH连接到你系统中用户test的账号上。”
2.服务器说:“好吧,也许你可以。首先你得接受一个提问,向我证明你的身份!”
3客户端说:“我接受你的提问,这是我的身份证明,是用我的私钥对你的提问进行数学计算后生成的”。这种对服务器的响应称为认证者。
4.服务器说:“多谢你的认证,现在我要检查一下test账号来确定你能不能进来”。
通常,服务器要对test的公钥进行检查,来确认认证者是否与其匹配(匹配是另一次的加密操作),如果可以,服务器就说:“好,进来吧,否则,认证就失败了。
在可以使用密钥认证之前,要先进行一些设置:
1.需要一个公钥和一个私钥,合起来称为一个密钥对,还需要使用一个口令来保护自己的私钥。
2.需要在SSH服务器上安装自己的公钥。
私钥:
负责在向外发出的SSH连接中证实用户的身份。当用户运行一个SSH客户端(如scp,ssh )通过一个服务器上的用户访问服务器时,程序向SSH服务器请求建立连接,然后客户端就使用这个用户私钥向服务器证实用户的身份。
注:(私钥应该放在安全的地方,否则,入侵者要是得到了你的私钥,就可以轻松访问你的账号了。)
公钥:
在到达你账号的连接中标识你的身份。SSH客户端请求访问你的账号时,会用一个私钥作为其身份的标识,SSH服务器将检查相应的公钥,如果根据某种加密测试,两个密钥是“匹配”的,那么认证就通过了,将继续连接,公钥不必保密,攻击者不能使用公钥攻破一个账号。
SSH身份标识
SSH密钥对分别保存在名字相关的两个文件中(即:私钥文件名字后面加上.pub就是公钥文件名)。
一个SSH身份标识不是单独一个密钥,而是一组密钥,SSH客户端请求认证时,可能用到这一组密钥中所有的密钥。如果用第一个密钥认证失败,SSH客户端自动试用第二个,依次类推,直至认证成功或全部失败为止。
使用#sftp 192.168.1.1将不需要在192.168.1.1上开启ftp服务了,它可以实现和ftp相同的功能。
本地转发
SSH的端口转发:SSH能为另外一个应用程序的数据流提供透明的加密措施,称为端口转发。
转发是一种与其它网络应用程序交互的方式。在SSH连接的一端,SSH截获其他程序的服务请求,将其通过加密的SSH连接发送,传送给另一端的适当服务接受者。
本地转发:例子,远程主机上运行WEB服务。我们在家里机器的WEB浏览器上访问远程主机的WEB页。现在我们要使用SSH来保护此WEB连接
在我的客户端机器上使用命令
$ssh -g -L 9898:192.168.1.210:80 192.168.1.210
-L表明是本地转发。此时tcp客户端(即这里的WEB浏览器)和SSH客户端位于同一台主机上
后面三个值由冒号隔开,分别表示:需要监听本地端口是9898;192.168.1.210即远程WEB服务器地址;80表示远程的转发目标端口号。
192.168.1.210:远程SSH主机的IP,由于WEB服务器与SSH服务器是同一台机器所以IP一致
-g(Gatewayports):开启网关端口,即任意一台机器都可以通过我的机器来访问那台WEB服务器。
退出SSH登录则停止转发
现在数据是这样传输的:
1.家里机器的WEB浏览器向本地端口9898发送数据,而不向远程WEB服务器的80端口发送数据。
2.家里主机上的SSH客户端读9898端口;加密数据,将其通过SSH连接到运行WEB服务的SSH服务器。
3.WEB服务器上的SSH服务器给数据解密,然后将其传给WEB服务器上的80端口。
4.使用相反的步骤将数据从WEB服务器把数据传给家里的机器。
实验环境:ssh客户端和web客户端在同一台主机上,ip为192.168.1.110,ssh服务器和web服务器在同一台机器上,ip为192.168.1.210
除了输入以上命令外还可以修改ssh的客户端配置文件来达到以上功能:
vi /etc/ssh/ssh_config,添加以下行
Host 192.168.1.210(ssh服务器的ip)
LocalForward 9898 192.168.1.210:80(web服务器的ip及端口)
Gatewayports=yes(缺省是关的)
此时重新连接到ssh服务器
使用#ssh 192.168.1.210即可,在命令行不必使用-g和-L
测试:在任意机器的web浏览器的地址栏输入http://192.168.1.110:9898,即可浏览到192.168.1.210上的web页面,如果不开启网关端口那么只能在本地机器输入http://localhost:9898才能看到web页面
运行远程SSH服务器的某个X程序:
1.首先打开客户端的X转发功能,即编辑客户端/etc/ssh/ssh_config配置文件,设置ForwardX11 yes(默认已经开启)
2.在shell下输入:
ssh –f 192.168.1.210 /usr/X11R6/bin/xterm
远程转发
Tcp客户端在远程,服务器在本地,转发连接由远程机器发起。例如:本地主机是WEB服务器,并且是ssh的客户端(ip为192.168.1.110),远程主机是WEB客户端即浏览器,并且是ssh服务器(ip为192.168.1.210) 。
在本地输入:
#ssh –R 2008:192.168.1.110:80 192.168.1.210
-R:表示远程转发
2008表示要转发的远程主机端口,即192.168.1.210这台
WEB客户端浏览器的端口
80表示本地WEB服务器的端口
测试:
在WEB客户端(192.168.1.210)浏览器的地址栏输入:http://localhost:2008相当于登陆到WEB服务器(192.168.1.110)的80端口。
在ssh的客户端修改客户端的配置文件:
添加
Host 192.168.1.210(远程ssh服务器的ip)
RemoteForward 2008 localhost:80
重新连接ssh服务器时不用使用-R选项,直接输入ssh 192.168.1.210即可
ssh服务器端配置
/etc/ssh/sshd_config
禁止使用系统密码认证,因为使用密码认证不安全
PasswordAuthentication no重启服务生效
帐户访问控制:AllowUsers
例如:AllowUser test 表示只允许test接受连接
DenyUsers test1 test2禁止test1和test2帐号接受连接
组访问控制:
AllowGroups group1
DenyGroups group1 group2
Deny的优先级大于Allow的优先级
启用root账号连接ssh,确实是禁止的
PermitRootLogin yes即可
分享到:
相关推荐
SSH(Secure Shell)是一种网络协议,用于在不安全的网络上提供安全的远程登录和其他服务。SSH Secure Shell经典版是一款绿色软件,意味着它无需安装,可以直接运行,方便用户快速使用和携带。这款软件的主要功能是...
SSH(Secure Shell)是一种网络协议,用于在不安全的网络上提供安全的远程登录和其他服务。它是IT领域中广泛使用的工具,特别是在管理Linux或Unix服务器时。SSH Secure Shell提供了加密的数据传输,确保了用户的身份...
SSH Secure Shell免安装版,解压后,直接运行SshClient SSH Secure Shell免安装版,解压后,直接运行SshClient
**SSH Secure Shell Client 3.2.9:安全远程访问的解决方案** SSH(Secure SHell)是一种网络协议,用于在不安全的网络上提供安全的远程登录和其他安全网络服务。SSH Secure Shell Client 3.2.9是这样一个客户端...
### SSH Secure Shell Client中文乱码问题解析 #### 一、问题背景 SSH(Secure Shell)是一种网络协议,用于计算机之间的加密登录。通过SSH协议可以实现远程登录、远程命令执行等功能,是运维人员进行服务器管理的...
SSH Secure Shell Client是一款强大的安全连接工具,主要用于在不安全的网络环境中提供安全的远程登录和其他网络服务。这个软件集成了SSH(Secure Shell)协议和SFTP(Secure File Transfer Protocol),使得用户...
SSH Secure Shell Client是一款深受IT专业人士喜爱的工具,主要用于安全地连接到远程Linux系统。这款绿色版客户端提供了便捷的SSH(Secure SHell)访问方式,确保数据传输的安全性,避免了传统telnet或ftp等不安全的...
SSH(Secure Shell)是一种网络协议,用于在不安全的网络上提供安全的远程登录和其他服务。SSH Secure Shell这款软件就是基于SSH协议实现的,它允许用户通过加密的方式连接到Linux服务器,进行命令行操作,提供了...
该文件不涉及版权,只是使其合适在WIN10下...SSH Secure Shell Client 软件在WIN10下运行时候窗口不兼容变形,导致设置的OK和cancel按键不出现,无法操作使用的问题。本资源里提供对应版本覆盖即可如XP系统下的使用。
在标题"ssh secure shell client-3.2.9.zip"中,"ssh"指的是Secure Shell,"secure shell client"是指SSH客户端软件,用于连接到支持SSH服务的远程服务器。版本号"3.2.9"表明这是该软件的一个特定发行版,通常包括...
SSH SecureShell Client是一款广泛使用的软件,它为用户提供了一个安全的远程连接到Linux服务器的途径。SSH,全称为Secure Shell,是一种网络协议,用于在不安全的网络上安全地执行命令和传输数据。在这个3.2.9版本...
SSH Secure Shell Client是一款广泛使用的软件,它为用户提供了一个安全的远程访问环境,使得用户能够连接到Linux服务器进行各种管理操作。SSH(Secure Shell)是一种网络协议,用于在不安全的网络上安全地传输数据...
### Windows中SSH Secure Shell Client 的使用方法 #### 一、概述 本文档旨在详细介绍如何在Windows环境下使用SSH Secure Shell Client进行安全的远程访问与文件传输。通过本教程,您将学习到从软件的下载安装、...
SSH(Secure SHell)是一种网络协议,用于在不安全的网络上提供安全的远程登录和其他服务。SSH Secure Shell Client是一款广泛使用的工具,尤其在Windows环境中,它为用户提供了一个安全的接口来连接到远程服务器,...
SSH Secure Shell Client 3.2.9是一款专为安全远程登录和文件传输设计的软件,它在IT行业中扮演着至关重要的角色。SSH,全称Secure Shell,是一种网络协议,用于在不安全的网络环境中提供安全的远程登录和其他服务。...
SSH(Secure SHell)是一种网络协议,用于在不安全的网络上安全地远程登录到Linux或Unix系统。它提供加密的网络通信,确保数据传输的安全性,尤其在管理远程服务器时非常常见。SSH Secure Shell服务器在Linux环境中...