linuxssh软件linuxssh软件
ssh软件有哪些?
SSH客户端是在管理和配置Linux服务器用到很多的软件了,一款好的SSH管理软件不但可以让你更好地执行Linux命令,对于工作效率的提升也是非常明显。
MobaXterm是一个非常强大的终端增强工具,除了支持基本的SSH终端管理外,还有非常多的增强和扩展功能。
Xshell是国内比较流行的SSH管理软件,和其他的SSH客户端相比,Xshell更加注重用户体验的一些东西。
Termius是一款全平台的SSH客户端,该软件最大的特点就是支持全部平台。
PuTTY是一款开源免费的SSH客户端,支持SCP,SSH,Telnet,rlogin等多种网络协议。
SimpleRemote是一款免费开源的远程连接管理工具,软件非常的小巧。
sshshell是什么软件?
sshshell是一个用来替代telnet,ftp以及r命令的工具包的软件,主要是想解决口令在网上明文传输的问题,为了系统安全和用户自身的权益,推广sshshell是必要的,通过sshshell,可以把所有传输的数据进行加密,这样也能防止dns欺骗和IP欺骗。
linux远程工具?
1、Xshell
介绍:xshell是一个非常强大的安全终端模拟软件,它支持SSH1,SSH2,以及Windows平台的TELNET协议。Xshell可以在Windows界面下用来访问远端不同系统下的服务器,从而比较好的达到远程控制终端的目的。(也是我目前使用的远程连接工具)
2、secureCRT
介绍:
SecureCRT支持SSH,同时支持Telnet和rlogin协议。SecureCRT是一款用于连接运行包括Windows、UNIX和VMS的理想工具。通过使用内含的VCP命令行程序可以进行加密文件的传输
LinuxSuse93如何配置ssh服务?
suselinux查看ssh服务的方法查询安装SSH服务1登陆linux系统,打开终端命令。输入rpm-qa|grepssh查找当前系统是否已经安装2如果没有安装SSH软件包,可以通过yum或rpm安装包进行安装(具体就不截图了)启动SSH服务2安装好了之后,就开启ssh服务。Ssh服务一般叫做SSHD命令行输入servicesshdstart可以启动或者使用/etc/initd/sshdstart配置查看SSHD端口3查看或编辑SSH服务配置文件,如vi/etc/ssh/sshdconfig如果要修改端口,把port后面默认的22端口改成别的端口即可(注意前面的#号要去掉)远程连接SSH4如果需要远程连接SSH,需要把22端口在防火墙上开放。关闭防火墙,或者设置22端口例外
linux服务之OpenSSH服务?
OpenSSH这一术语指系统中使用的SecureShell软件的软件实施。用于在远程系统上安全运行shell。如果您在可提供ssh服务的远程Linux系统中拥有用户帐户,则ssh是通常用来远程登录到该系统的命令。ssh命令也可用于在远程系统中运行命令。
常见的远程登录工具有:
telnet
ssh
dropbear
telnet//远程登录协议,23/TCP//一般用于测试端口或者接口是否开启
认证明文
数据传输明文
ssh//SecureSHell,应用层协议,22/TCP
通信过程及认证过程是加密的,主机认证
用户认证过程加密
数据传输过程加密
dropbear//嵌入式系统专用的SSH服务器端和客户端工具,一般应用于手机上
12SSH版本
openssh有两个版本,分别为v1和v2,其特点如下:
v1:基于CRC-32做MAC,无法防范中间人攻击
mtu1500qdiscpfifo_faststateUPqlen1000link/ether00:0c:29:8e:77:9bbrdff:ff:ff:ff:ff:ffinet192168112131/24brd192168112255scopeglobaldynamicens33valid_lft1191secpreferred_lft1191secinet6fe80::bc68:f1a3:4a1f:87fb/64scopelinkvalid_lftforeverpreferred_lftforever
//在用另一台主机通过ssh来远程执行命令
#sshroot@192168112131'/usr/sbin/ipasens33'
root@192168112131'spassword:
2:ens33:BROADCAST,MULTICAST,UP,LOWER_UP>mtu1500qdiscpfifo_faststateUPqlen1000link/ether00:0c:29:8e:77:9bbrdff:ff:ff:ff:ff:ffinet192168112131/24brd192168112255scopeglobaldynamicens33valid_lft1783secpreferred_lft1783secinet6fe80::bc68:f1a3:4a1f:87fb/64scopelink
valid_lftforeverpreferred_lftforever
#
//w命令可以显示当前登录到计算机的用户列表。这对于显示哪些用户使用ssh从哪些远程位置进行了登录以及执行了何种操作等内容特别有用
#ssh192168112131
root@192168112131'spassword:
Lastlogin:MonApr114:30:572019from19216811214
//在切换到GUI主机使用w命令查看可以看到19216811214用户在登陆中
#w14:40:59up4:37,2users,loadaverage:000,002,005
USERTTYFROMLOGIN@IDLEJCPUPCPUWHAT
rootpts/0192168112110:03300s017s001sw
rootpts/11921681121414:40200s003s003s-bash
15SSH主机密钥
ssh通过公钥加密的方式保持通信安全。当某一ssh客户端连接到ssh服务器时,在该客户端登录之前,服务器会向其发送公钥副本。这可用于为通信渠道设置安全加密,并可验证客户端的服务器。
当用户第一次使用ssh连接到特定服务器时,ssh命令可在用户的/ssh/known_hosts文件中存储该服务器的公钥。在此之后每当用户进行连接时,客户端都会通过对比/ssh/known_hosts文件中的服务器条目和服务器发送的公钥,确保从服务器获得相同的公钥。如果公钥不匹配,客户端会假定网络通信已遭劫持或服务器已被入侵,并且中断连接。
这意味着,如果服务器的公钥发生更改(由于硬盘出现故障导致公钥丢失,或者出于某些正当理由替换公钥),用户则需要更新其~/ssh/known_hosts文件并删除旧的条目才能够进行登录。
//主机ID存储在本地客户端系统上的~/ssh/known_hosts中(家目录中的隐藏目录ssh)
#cat/root/ssh/known_hosts
192168112131ecdsa-sha2-nistp256AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBJvfkdzYN1ayz0bbvSc5be4/rddT4r2q/DfLo6VtruJgNNsexqi5GzSJ7AGB1kECRSw4/eg1Z11x05bGjRJfL+8=
//主机密钥存储在SSH服务器上的/etc/ssh/ssh_host_key中(也就是不手动生成密钥的情况下会自动使用这里的密钥)
#ls/etc/ssh/key
/etc/ssh/ssh_host_ecdsa_key/etc/ssh/ssh_host_ecdsa_keypub/etc/ssh/ssh_host_ed25519_key/etc/ssh/ssh_host_ed25519_keypub/etc/ssh/ssh_host_rsa_key/etc/ssh/ssh_host_rsa_keypub
2配置基于SSH密钥的身份验证
用户可通过使用公钥身份验证进行ssh登录身份验证。ssh允许用户使用私钥-公钥方案进行身份验证。这意味着将生成私钥和公钥这两个密钥。私钥文件用作身份验证凭据,像密码一样,必须妥善保管。公钥复制到用户希望登录的系统,用于验证私钥。公钥并不需要保密。拥有公钥的ssh服务器可以发布仅持有您私钥的系统才可解答的问题。因此,可以根据所持有的密钥进行验证。如此一来,就不必在每次访问系统时键入密码,但安全性仍能得到保证。
使用ssh-keygen命令生成密码。将会生成私钥/ssh/id_rsa和公钥/ssh/id_rsapub。
//使用ssh-keygen生成密钥时首先会询问你密钥文件存放的位置,默认是在/root/ssh/id_rsa和id_rsapub
#ssh-keygen
Generatingpublic/privatersakeypair
Enterfileinwhichtosavethekey(/root/ssh/id_rsa):
//接着会询问你是否为你的私钥配置密码
Enterpassphrase(emptyfornopassphrase):
//最后会提示你密钥创建成功,私钥存放在id_rsa,公钥放在id_rsapub
Youridentificationhasbeensavedin/root/ssh/id_rsa
Yourpublickeyhasbeensavedin/root/ssh/id_rsapub
Thekeyfingerprintis:
SHA256:XFV5J+RPAuuHQZBipB8yUyQ22/QAOWT+z2Tsi+cJcpwroot@CTL
Thekey'srandomartimageis:
//RSA算法密钥一般为2048位
+-------+
|B=o+oo|
|+oOooo+oo|
|Booooooo|
|B+o+|
|S+o|
|B|
|E+|
|ooo|
|o+|
+---------+
注意:
生成密钥时,系统将提供指定密码的选项,在访问私钥时必须提供该密码。如果私钥被偷,除颁发者之外的其他任何人很难使用该私钥,因为已使用密码对其进行保护。这样,在攻击者破解并使用私钥前,会有足够的时间生成新的密钥对并删除所有涉及旧密钥的内容。
如何在linux下配置ssh和sftp使用不同的端口号?
1、两个deamon
要实现ssh和sftp分离,分别监听不同的端口,可以通过创建两个‘/usr/sbin/sshd’后台程序,一个监听22端口(ssh),一个监听20022端口(sftp),为了区分ssh和sftp服务的后台程序,这里将ssh服务的后台程序保持为/usr/sbin/sshd,而将sftp服务的后台程序改为/usr/sbin/sftpd。/usr/sbin/sftpd是/usr/sbin/sshd的一个链接,其内容完全相同(ln-sf/usr/sbin/sshd/usr/sbin/sftpd)。
2、两个service
SLES12使用systemd管理系统服务,ssh服务对应/usr/lib/systemd/system/sshdservice文件,实现sftp服务时可以将/usr/lib/systemd/system/sshdservice复制到/etc/systemd/system/sftpdservice,然后修改sftpdservice文件内容。(使用修改好的sftpdservice文件即可)
3、其他文件系统的ssh服务是通过安装openssh实现的,可以通过rpm-qlopenssh查看该rpm包含哪些文件。总结实现ssh和sftp分离的相关的文件有:
ssh服务sftp服务
/usr/lib/systemd/system/sshdservice/etc/systemd/system/sftpdservice(通过修改/usr/lib/systemd/system/sshdservice文件得到)
/etc/pamd/sshd/etc/pamd/sftpd(通过复制/etc/pamd/sshd文件得到)
/etc/ssh/sshd_config/etc/ssh/sftpd_config(通过复制/etc/ssh/sshd_config文件得到)
/usr/sbin/rcsshd/usr/sbin/rcsftpd(ln-sf/usr/sbin/service/usr/sbin/rcsftpd)
/usr/sbin/sshd/usr/sbin/sftpd(ln-sf/usr/sbin/sshd/usr/sbin/sftpd)
/etc/sysconfig/ssh/etc/sysconfig/sftp(通过修改/etc/sysconfig/ssh文件得到)
至此,我们已经实现了两个服务。
但是,ssh服务和sftp服务并没有真正的分离,此时已然可以通过22号端口使用ssh服务和sftp服务,而新开的20022端口也可以使用ssh服务(ssh-p20022username@serverip)和sftp服务(sftp-oPort=20022username@serverip)。
4、关闭22号端口下的sftp服务编辑/usr/sbin/sshd的配置文件/etc/ssh/sshd_config文件,将Subsystem参数注释掉,然后重启sshd同时也可以设置可访问22号端口的用户白名单:编辑/etc/ssh/sshd_config文件,设置AllowGroups参数(假设设置为AllowGroupssshonly),限制仅AllowGroups组内的用户可通过22号端口ssh登录系统(对于需要ssh登录系统的用户可通过usermod-Asshonlyusername>将其加入到AllowGroups组内)
5、“关闭20022号端口下的ssh服务”sftp作为一个子服务,它的开启依赖于ssh服务,因此不能从本质上关闭ssh服务而只开启sftp服务。可以用以下方式来规避:/usr/sbin/sftpd的配置文件/etc/ssh/sftpd_config中包含Subsystem参数配置(推荐使用Subsystemsftpinternal-sftp-lINFO-fAUTH)/etc/ssh/sftpd_config中包含AllowGroups参数(假设为AllowGroupssftponly),限制仅AllowGroups组内的用户可以访问20022端口将AllowGroups组内的用户的shell改为/bin/false(usermod-s/bin/falseusername>),使AllowGroups组内的用户仅能sftp登录系统(如果一个用户即需要ssh,又需要sftp,则不能将其shell改为/bin/false)
6、用户白名单配置配置之后,需将系统内需要ssh访问系统的用户加入到sshonly组内,需将系统内需要sftp访问系统的用户加入到sftponly组,同时需要ssh和sftp的用户则sshonly和sftponly组都要加入。
7、重启ssh服务和sftp服务,并设置开机启动
servicesshdrestartservicesftpdrestart
linux怎么通过ssh访问另一台服务器?
举例说明: 如用root帐号连接一个IP为1921681102的机器,输入:“ssh1921681102-lroot”, 回车后输入root帐号的密码再回车确认即可。 如果该服务器的ssh端口不是默认的22端口,是自定义的一个如1234,则可在命令后面加参数-p, 如:“ssh1921681102-lroot-p1234”
在Linux系统下使用SSH实现端口映射的方法?
从技术角度来分析,几个要求:
1、从安全方面看,sftp会更安全一点
2、线上服务器提供在线服务,对用户需要控制,只能让用户在自己的home目录下活动
3、用户只能使用sftp,不能ssh到机器进行操作
提供sftp服务,可以用系统自带的internal-sftp,也可以使用vsftpd,这里需求不多,直接选用internal-sftp。
限制用户只能在自己的home目录下活动,这里需要使用到chroot,openssh48p1以后都支持chroot,我现在用的是centos63,自带的openssh已经是53p1,足够了。
可以输入:
#ssh-v
来查看openssh的版本,如果低于48p1,需要自行升级安装,不在这里具体介绍了。
假设,有一个名为sftp的组,这个组中的用户只能使用sftp,不能使用ssh,且sftp登录后只能在自己的home目录下活动
1、创建sftp组
#groupaddsftp
2、创建一个sftp用户,名为mysftp
#useradd-gsftp-s/bin/falsemysftp
#passwdmysftp
3、sftp组的用户的home目录统一指定到/data/sftp下,按用户名区分,这里先新建一个mysftp目录,然后指定mysftp的home为/data/sftp/mysftp
#mkdir-p/data/sftp/mysftp
#usermod-d/data/sftp/mysftpmysftp
4、配置sshd_config
编辑/etc/ssh/sshd_config
#vim+132/etc/ssh/sshd_config
找到如下这行,并注释掉
subsystemsftp/usr/libexec/openssh/sftp-server
添加如下几行
subsystemsftpinternal-sftp
matchgroupsftp
chrootdirectory/data/sftp/%u
forcecommandinternal-sftp
allowtcpforwardingno
x11forwardingno
解释一下添加的几行的意思
subsystemsftpinternal-sftp
这行指定使用sftp服务使用系统自带的internal-sftp
matchgroupsftp
这行用来匹配sftp组的用户,如果要匹配多个组,多个组之间用逗号分割
当然,也可以匹配用户
matchusermysftp
这样就可以匹配用户了,多个用户名之间也是用逗号分割,但我们这里按组匹配更灵活和方便
chrootdirectory/data/sftp/%u
用chroot将用户的根目录指定到/data/sftp/%u,%u代表用户名,这样用户就只能在/data/sftp/%u下活动,chroot的含义,可以参考这里:http://wwwibmcom/developerworks/cn/linux/l-cn-chroot/
forcecommandinternal-sftp
指定sftp命令
allowtcpforwardingno
x11forwardingno
这两行,如果不希望该用户能使用端口转发的话就加上,否则删掉
5、设定chroot目录权限
#chownroot:sftp/data/sftp/mysftp
#chmod755/data/sftp/mysftp
错误的目录权限设定会导致在log中出现”fatal:badownershipormodesforchrootdirectoryxxxxxx”的内容
目录的权限设定有两个要点:
1、由chrootdirectory指定的目录开始一直往上到系统根目录为止的目录拥有者都只能是root
2、由chrootdirectory指定的目录开始一直往上到系统根目录为止都不可以具有群组写入权限
所以遵循以上两个原则
1)我们将/data/sftp/mysftp的所有者设置为了root,所有组设置为sftp
2)我们将/data/sftp/mysftp的权限设置为755,所有者root有写入权限,而所有组sftp无写入权限
6、建立sftp用户登入后可写入的目录
照上面设置后,在重启sshd服务后,用户mysftp已经可以登录,但使用chroot指定根目录后,根应该是无法写入的,所以要新建一个目录供mysftp上传文件。这个目录所有者为mysftp,所有组为sftp,所有者有写入权限,而所有组无写入权限
#mkdir/data/sftp/mysftp/upload
#chownmysftp:sftp/data/sftp/mysftp/upload
#chmod755/data/sftp/mysftp/upload
7、重启sshd服务
#servicesshdrestart
到这里,mysftp已经可以通过sftp客户端登录并可以上传文件到upload目录。
如果还是不能在此目录下上传文件,提示没有权限,检查selinux是否关闭,可以使用如下指令关闭selinux
修改/etc/selinux/config文件中的selinux=""为disabled,然后重启。或者
#setenforce0
如何关闭linux下的ssh服务?
chkconfig--level2345sshdon--level指定系统在2345运行级别时,通常在35中开启就行,开启(on)sshd服务,关闭则用(off)临时控制启动停止则用:/etc/rcd/initd/sshdstart|stop|restart
ssh只能登linux吗?
ssh并不是只能登linux操作系统。ssh是unix操作系统用于远程登录的程序。
ssh的开源免费版是openssh,它源于openBSD操作系统。在服务器端启用sshd之后,就可以从远程登录服务器。目前所有类unix的操作系统都操供ssh服务。所以ssh能登录所有类unix操作系统。
从客户端来看,SSH提供两种级别的安全验证。
第一种级别(基于口令的安全验证),只要知道自己的帐号和口令,就可以登录到远程主机,并且所有传输的数据都会被加密。但是,这种验证方式不能保证你正在连接的服务器就是想连接的服务器。可能会有别的服务器在冒充真正的服务器,也就是受到中间人这种攻击方式的攻击。
第二种级别(基于密匙的安全验证),需要依靠密匙,也就是必须为自己创建一对密匙,并把公有密匙放在需要访问的服务器上。如果要连接到SSH服务器上,客户端软件就会向服务器发出请求,请求用密匙进行安全验证。
服务器收到请求之后,先在在该服务器的用户根目录下寻找你的公有密匙,然后把它和发送过来的公有密匙进行比较。如果两个密匙一致,服务器就用公有密匙加密质询(challenge)并把它发送给客户端软件。客户端软件收到质询之后就可以用私人密匙解密再把它发送给服务器。
扩展资料
SSH为较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用SSH协议可以有效防止远程管理过程中的信息泄露问题。SSH最初为UNIX系统上的一个程序,后来又迅速扩展到其他操作平台。
SSH在正确使用时可弥补网络中的漏洞。客户端包含ssh程序以及像scp(远程拷贝)、slogin(远程登陆)、sftp(安全文件传输)等其他的应用程序。
使用OpenSSH工具将会增进你的系统安全性。 所有使用OpenSSH工具的通讯,包括口令,都会被加密。telnet和ftp使用纯文本口令,并被明文发送。
这些信息可能会被截取,口令可能会被检索,然后未经授权的人员可能会使用截取的口令登录进的系统而对系统造成危害。应该尽可能地使用OpenSSH的工具集合来避免这些安全问题。
-ssh
-Secure Shell
0条评论