目录

OpenSSH服务器

■SSH (Secure Shell)协议

ssh原理

ssh加密通讯原理

(1)对称加密

(2)非对称加密

登录

服务端配置

全部配置项详细解释:

■用户登录控制

■登录验证方式

使用秘钥对及免交互验证登录

■保护原理

■保护机制的实现方式

轻量级自动化运维工具pssh

总结


OpenSSH服务器

■SSH (Secure Shell)协议

什么是SSH服务器?

SSH(Secure Shell)是一种安全通道协议,主要用来实现字符界面的远程登录、远程 复制等功能。SSH 协议对通信双方的数据传输进行了加密处理,其中包括用户登录时输入的用户口令,SSH 为建立在应用层和传输层基础上的安全协议。对数据进行压缩,加快传输速度。

SSH客户端<--------------网络---------------->SSH服务端

优点:

  • 数据传输是加密的,可以防止信息泄漏

  • 数据传输是压缩的,可以提高传输速度

●是一种安全通道协议

●对通信数据进行了加密处理,用于远程管理

ssh原理

公钥传输原理

  • 客户端发起链接请求

  • 服务端返回自己的公钥,以及一个会话ID(这一步客户端得到服务端公钥)

  • 客户端生成密钥对

  • 客户端用自己的公钥异或会话ID,计算出一个值Res,并用服务端的公钥加密

  • 客户端发送加密后的值到服务端,服务端用私钥解密,得到Res

  • 服务端用解密后的值Res异或会话ID,计算出客户端的公钥(这一步服务端得到客户端公钥)

  • 最终:双方各自持有三个秘钥,分别为自己的一对公、私钥,以及对方的公钥,之后的所有通讯都

    会被加密

ssh加密通讯原理

(1)对称加密

1、概念

采用单钥密码系统的加密方法,同一个密钥可以同时用作信息的加密和解密,这种加密方法称为对称加密,由于其速度快,对称性加密通常在消息发送方需要加密大量数据时使用

2、常用算法

在对称加密算法中常用的算法有:DES、3DES、TDEA、Blowfish、RC2、RC4、RC5、IDEA、SKIPJACK等。

3、特点

1、加密方和解密方使用同一个密钥; 2、加密解密的速度比较快,适合数据比较长时的使用; 3、密钥传输的过程不安全,且容易被破解,密钥管理也比较麻烦;

4、优缺点

对称加密算法的优点是算法公开、计算量小、加密速度快、加密效率高。 对称加密算法的缺点是在数据传送前,发送方和接收方必须商定好秘钥,然后使双方都能保存好秘钥。其次如果一方的秘钥被泄露,那么加密信息也就不安全了。另外,每对用户每次使用对称加密算法时,都需要使用其他人不知道的独一秘钥,这会使得收、发双方所拥有的钥匙数量巨大,密钥管理成为双方的负担

(2)非对称加密

1、概念

非对称加密算法需要两个密钥:公开密钥(publickey:简称公钥)和私有密钥(privatekey:简称私钥)。公钥与私钥是一对,如果用公钥对数据进行加密,只有用对应的私钥才能解密。因为加密和解密使用的是两个不同的密钥,所以这种算法叫作非对称加密算法。

2、常用算法

RSA(RSA algorithm):目前使用最广泛的算法 DSA(Digital Signature Algorithm):数字签名算法,和 RSA 不同的是 DSA 仅能用于数字签名,不能进行数据加密解密,其安全性和RSA相当,但其性能要比RSA快 ECC(Elliptic curve cryptography,椭圆曲线加密算法) ECDSA:Elliptic Curve Digital Signature Algorithm,椭圆曲线签名算法,是ECC和 DSA 的结合,相比于RSA算法,ECC 可以使用更小的秘钥,更高的效率,提供更高的安全保障

3、原理

首先ssh通过加密算法在客户端产生密钥对(公钥和私钥),公钥发送给服务器端,自己保留私钥,如果要想连接到带有公钥的SSH服务器,客户端SSH软件就会向SSH服务器发出请求,请求用联机的用户密钥进行安全验证。SSH服务器收到请求之后,会先在该SSH服务器上连接的用户的家目录下

5、优缺点

相比于对称加密技术,非对称加密技术安全性更好,但性能更慢。此本次实验中,我们用非对称加密算法ECDSA进行加密,为了方便用root用户,也可给其他普通用户配置

登录

#登录 方法一:
ssh [远程主机用户名]@[远程服务器主机名或IP地址] -p port当在 Linux 主机上远程连接另一台 Linux 主机时,如当前所登录的用户是 root 的话,当连接另一台主机时也是用 root 用户登录时,可以直接使用 ssh   IP,端口默认即可,如果端口不是默认的情况下,需要使用-p 指定端口。例子:
[root@ky15 ~]#ssh root@192.168.91.101
#默认使用22端口   root(登录对方的用户)加IP 地址,首次登录会询问,并要求输入密码
The authenticity of host '192.168.91.101 (192.168.91.101)' can't be established.
ECDSA key fingerprint is SHA256:o72+YjT+8laQRofsv2dFlcx099aeoI92rloek3ZVrUY.
ECDSA key fingerprint is MD5:a7:9c:69:35:16:17:21:cb:0e:4f:0d:42:44:16:3a:f7.
Are you sure you want to continue connecting (yes/no)?
root@192.168.91.101's password:
Last login: Tue Sep 28 22:23:52 2021
[root@ky15-1 ~]##登录方法二
ssh -l [远程主机用户名] [远程服务器主机名或IP 地址] -p port
-l :-l 选项,指定登录名称。
-p:-p 选项,指定登录端口(当服务端的端口非默认时,需要使用-p 指定端口进行登录)例子:
[root@ky15 ~]#ssh -l root 192.168.91.101
root@192.168.91.101's password:
Last login: Tue Sep 28 22:25:40 2021 from 192.168.91.100

服务端配置

常用配置项:

[root@ky15-1 ~]# vim /etc/ssh/sshd_config
Port    22    #生产建议修改
ListenAddress ip
LoginGraceTime 2m
PermitRootLogin yes #默认ubuntu不允许root远程ssh登录
StrictModes yes   #检查.ssh/文件的所有者,权限等
MaxAuthTries   6  #pecifies the maximum number of authentication # ssh -o NumberOfPasswordPrompts=8root@192.168.91.100需要配合这个选                     项一起使用
attempts permitted per connection. Once the number of failures reaches half this
value, additional failures are logged. The default is 6.
MaxSessions  10         #同一个连接最大会话
PubkeyAuthentication yes     #基于key验证
PermitEmptyPasswords no      #空密码连接
PasswordAuthentication yes   #基于用户名和密码连接
GatewayPorts no
ClientAliveInterval 10 #单位:秒
ClientAliveCountMax 3 #默认3
UseDNS yes #提高速度可改为no
GSSAPIAuthentication yes #提高速度可改为no
MaxStartups    #未认证连接最大值,默认值10
Banner /path/file
#以下可以限制可登录用户的办法:白名单  黑名单
AllowUsers user1 user2 user3@ip(限制主机)
DenyUsers user1 user2 user3
AllowGroups g1 g2
DenyGroups g1 g2

全部配置项详细解释:

#############1. 关于 SSH Server 的整体设定##############
#Port 22
##port用来设置sshd监听的端口,为了安全起见,建议更改默认的22端口为5位以上陌生端口
#Protocol 2,1
Protocol 2
##设置协议版本为SSH1或SSH2,SSH1存在漏洞与缺陷,选择SSH2
#AddressFamily any
#ListenAddress 0.0.0.0
#ListenAddress用来设置sshd服务器绑定的IP地址
##监听的主机适配卡,举个例子来说,如果您有两个 IP, 分别是 192.168.0.11 及 192.168.2.20 ,那么只想要
###开放 192.168.0.11 时,就可以设置为:ListenAddress 192.168.0.11
####表示只监听来自 192.168.0.11 这个 IP 的SSH联机。如果不使用设定的话,则预设所有接口均接受 SSH#############2. 说明主机的 Private Key 放置的档案##########                 
#ListenAddress ::
##HostKey用来设置服务器秘钥文件的路径
# HostKey for protocol version 1
#HostKey /etc/ssh/ssh_host_key
##设置SSH version 1 使用的私钥# HostKeys for protocol version 2
#HostKey /etc/ssh/ssh_host_rsa_key
##设置SSH version 2 使用的 RSA 私钥#HostKey /etc/ssh/ssh_host_dsa_key
##设置SSH version 2 使用的 DSA 私钥#Compression yes      
##设置是否可以使用压缩指令# Lifetime and size of ephemeral version 1 server key
#KeyRegenerationInterval 1h
##KeyRegenerationInterval用来设置多长时间后系统自动重新生成服务器的秘钥,
###(如果使用密钥)。重新生成秘钥是为了防止利用盗用的密钥解密被截获的信息。#ServerKeyBits 768
##ServerKeyBits用来定义服务器密钥的长度
###指定临时服务器密钥的长度。仅用于SSH-1。默认值是 768(位)。最小值是 512 。# Logging
# obsoletes QuietMode and FascistLogging
#SyslogFacility AUTH
SyslogFacility AUTHPRIV
##SyslogFacility用来设定在记录来自sshd的消息的时候,是否给出“facility code”
当有人使用 SSH 登入系统的时候,SSH 会记录信息,这个信息要记录的类型为AUTHPRIV,sshd 服务日志存放在:/var/log/secure。
#LogLevel INFO
##LogLevel用来设定sshd日志消息的级别
定义登录记录的等级#################3.安全认证方面的设定################
#############3.1、有关安全登录的设定###############
# Authentication:
##限制用户必须在指定的时限内认证成功,0 表示无限制。默认值是 120 秒。#LoginGraceTime 2m
##LoginGraceTime用来设定如果用户登录失败,在切断连接前服务器需要等待的时间,单位为妙#PermitRootLogin yes
##PermitRootLogin用来设置能不能直接以超级用户ssh登录,root远程登录Linux很危险,建议注销或设置为no#StrictModes yes
##StrictModes用来设置ssh在接收登录请求之前是否检查用户根目录和rhosts文件的权限和所有权,建议开启
###建议使用默认值"yes"来预防可能出现的低级错误。#RSAAuthentication yes
##RSAAuthentication用来设置是否开启RSA密钥验证,只针对SSH1#PubkeyAuthentication yes
##PubkeyAuthentication用来设置是否开启公钥验证,如果使用公钥验证的方式登录时,则设置为yes#AuthorizedKeysFile     .ssh/authorized_keys
##AuthorizedKeysFile用来设置公钥验证文件的路径,与PubkeyAuthentication配合使用,默认值是".ssh/authorized_keys"。
###该指令中可以使用下列根据连接时的实际情况进行展开的符号: %% 表示'%'、%h 表示用户的主目录、%u 表示该用户的用户名
####经过扩展之后的值必须要么是绝对路径,要么是相对于用户主目录的相对路径。#############3.2、安全验证的设定###############
# For this to work you will also need host keys in /etc/ssh/ssh_known_hosts
#RhostsRSAAuthentication no
##是否使用强可信主机认证(通过检查远程主机名和关联的用户名进行认证)。仅用于SSH-1。
###这是通过在RSA认证成功后再检查 ~/.rhosts 或 /etc/hosts.equiv 进行认证的。出于安全考虑,建议使用默认值"no"。# similar for protocol version 2
#HostbasedAuthentication no
##这个指令与 RhostsRSAAuthentication 类似,但是仅可以用于SSH-2。# Change to yes if you don't trust ~/.ssh/known_hosts for
# RhostsRSAAuthentication and HostbasedAuthentication#IgnoreUserKnownHosts no
##IgnoreUserKnownHosts用来设置ssh在进行RhostsRSAAuthentication安全验证时是否忽略用户的“/$HOME/.ssh/known_hosts”文件
# Don't read the user's ~/.rhosts and ~/.shosts files#IgnoreRhosts yes
##IgnoreRhosts用来设置验证的时候是否使用“~/.rhosts”和“~/.shosts”文件# To disable tunneled clear text passwords, change to no here!
#PasswordAuthentication yes
##PasswordAuthentication用来设置是否开启密码验证机制,如果用密码登录系统,则设置yes#PermitEmptyPasswords no
#PermitEmptyPasswords用来设置是否允许用口令为空的账号登录系统,设置no#PasswordAuthentication yes
##是否允许使用基于密码的认证。默认为"yes"。
PasswordAuthentication yes# Change to no to disable s/key passwords
##设置禁用s/key密码
#ChallengeResponseAuthentication yes
##ChallengeResponseAuthentication 是否允许质疑-应答(challenge-response)认证
ChallengeResponseAuthentication no########3.3、与 Kerberos 有关的参数设定,指定是否允许基于Kerberos的用户认证########
#Kerberos options
#KerberosAuthentication no
##是否要求用户为PasswdAuthentication提供的密码必须通过Kerberos KDC认证,要使用Kerberos认证,
###服务器必须提供一个可以校验KDC identity的Kerberos servtab。默认值为no#KerberosOrLocalPasswd yes
##如果Kerberos密码认证失败,那么该密码还将要通过其他的的认证机制,如/etc/passwd
###在启用此项后,如果无法通过Kerberos验证,则密码的正确性将由本地的机制来决定,如/etc/passwd,默认为yes#KerberosTicketCleanup yes
##设置是否在用户退出登录是自动销毁用户的ticket#KerberosGetAFSToken no
##如果使用AFS并且该用户有一个Kerberos 5 TGT,那么开启该指令后,
###将会在访问用户的家目录前尝试获取一个AFS token,并尝试传送 AFS token 给 Server 端,默认为no####3.4、与 GSSAPI 有关的参数设定,指定是否允许基于GSSAPI的用户认证,仅适用于SSH2####
##GSSAPI 是一套类似 Kerberos 5 的通用网络安全系统接口。
###如果你拥有一套 GSSAPI库,就可以通过 tcp 连接直接建立 cvs 连接,由 GSSAPI 进行安全鉴别。# GSSAPI options
#GSSAPIAuthentication no
##GSSAPIAuthentication 指定是否允许基于GSSAPI的用户认证,默认为noGSSAPIAuthentication yes
#GSSAPICleanupCredentials yes
##GSSAPICleanupCredentials 设置是否在用户退出登录是自动销毁用户的凭证缓存
GSSAPICleanupCredentials yes# Set this to 'yes' to enable PAM authentication, account processing,
# and session processing. If this is enabled, PAM authentication will
# be allowed through the ChallengeResponseAuthentication mechanism.
# Depending on your PAM configuration, this may bypass the setting of
# PasswordAuthentication, PermitEmptyPasswords, and
# "PermitRootLogin without-password". If you just want the PAM account and
# session checks to run without PAM authentication, then enable this but set
# ChallengeResponseAuthentication=no
#UsePAM no
##设置是否通过PAM验证
UsePAM yes# Accept locale-related environment variables
##AcceptEnv 指定客户端发送的哪些环境变量将会被传递到会话环境中。
###[注意]只有SSH-2协议支持环境变量的传递。指令的值是空格分隔的变量名列表(其中可以使用'*'和'?'作为通配符)。
####也可以使用多个 AcceptEnv 达到同样的目的。需要注意的是,有些环境变量可能会被用于绕过禁止用户使用的环境变量。
#####由于这个原因,该指令应当小心使用。默认是不传递任何环境变量。AcceptEnv LANG LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_MESSAGES
AcceptEnv LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE LC_MEASUREMENT
AcceptEnv LC_IDENTIFICATION LC_ALL
AllowTcpForwarding yes##AllowTcpForwarding设置是否允许允许tcp端口转发,保护其他的tcp连接#GatewayPorts no
##GatewayPorts 设置是否允许远程客户端使用本地主机的端口转发功能,出于安全考虑,建议禁止#############3.5、X-Window下使用的相关设定################X11Forwarding no
##X11Forwarding 用来设置是否允许X11转发
X11Forwarding yes#X11DisplayOffset 10
##指定X11 转发的第一个可用的显示区(display)数字。默认值是 10 。
###可以用于防止 sshd 占用了真实的 X11 服务器显示区,从而发生混淆。
X11DisplayOffset 10#X11UseLocalhost yes#################3.6、登入后的相关设定##################PrintMotd yes
##PrintMotd用来设置sshd是否在用户登录时显示“/etc/motd”中的信息,可以选在在“/etc/motd”中加入警告的信息#PrintLastLog yes
#PrintLastLog 是否显示上次登录信息#TCPKeepAlive yes
##TCPKeepAlive 是否持续连接,设置yes可以防止死连接
###一般而言,如果设定这项目的话,那么 SSH Server 会传送 KeepAlive 的讯息给 Client 端,以确保两者的联机正常!
####这种消息可以检测到死连接、连接不当关闭、客户端崩溃等异常。在这个情况下,任何一端死掉后, SSH 可以立刻知道,而不会有僵尸程序的发生!#UseLogin no
##UseLogin 设置是否在交互式会话的登录过程中使用。默认值是"no"。
###如果开启此指令,那么X11Forwarding 将会被禁止,因为login不知道如何处理 xauth cookies 。
####需要注意的是,在SSH底下本来就不接受 login 这个程序的登入,如果指UsePrivilegeSeparation ,那么它将在认证完成后被禁用。
UserLogin no       #UsePrivilegeSeparation yes
##UsePrivilegeSeparation 设置使用者的权限
#PermitUserEnvironment no
#Compression delayed
#ClientAliveInterval 0
#ClientAliveCountMax 3
#ShowPatchLevel no#UseDNS yes
##UseDNS是否使用dns反向解析#PidFile /var/run/sshd.pid#MaxStartups 10
##MaxStartups 设置同时允许几个尚未登入的联机,当用户连上ssh但并未输入密码即为所谓的联机,
###在这个联机中,为了保护主机,所以需要设置最大值,预设为10个,而已经建立联机的不计算入内,
####所以一般5个即可,这个设置可以防止恶意对服务器进行连接#MaxAuthTries 6
##MaxAuthTries 用来设置最大失败尝试登陆次数为6,合理设置辞职,可以防止攻击者穷举登录服务器
#PermitTunnel no############3.7、开放禁止用户设定#############AllowUsers<用户名1> <用户名2> <用户名3> ...
##指定允许通过远程访问的用户,多个用户以空格隔开#AllowGroups<组名1> <组名2> <组名3> ...
##指定允许通过远程访问的组,多个组以空格隔开。当多个用户需要通过ssh登录系统时,可将所有用户加入一个组中。#DenyUsers<用户名1> <用户名2> <用户名3> ...
##指定禁止通过远程访问的用户,多个用户以空格隔开#DenyGroups<组名1> <组名2> <组名3> ...
##指定禁止通过远程访问的组,多个组以空格隔开。# no default banner path
#Banner /some/path# override default of no subsystems
Subsystem       sftp    /usr/libexec/openssh/sftp-server
ClientAliveInterval 3600
ClientAliveCountMax 0

OpenSSH服务器

服务名称: sshd

服务端主程序: /usr/sbin/sshd

服务端配置文件: /etc/ssh/sshd_ config

服务监听选项

●端口号、协议版本、监听IP地址

●禁用反向解析

■用户登录控制

●禁用root用户、 空密码用户
●限制登录验证时间、重试次数
●AllowUsers、DenyUsers

■登录验证方式

密码验证:核对用户名、密码是否匹配
密钥对验证:核对客户的私钥、服务端公钥是否匹配

使用秘钥对及免交互验证登录

原理:

  • 用户/密码

  • 基于秘钥

用户/密码:

  1. 客户端发起ssh请求,服务器会把自己的公钥发送给用户

  2. 用户会根据服务器发来的公钥对密码进行加密

  3. 加密后的信息回传给服务器,服务器用自己的私钥解密,如果密码正确,则用户登录成功

基于密钥的登录方式

  1. 首先在客户端生成一对密钥(ssh-keygen)

  2. 并将客户端的公钥ssh-copy-id 拷贝到服务端

  3. 当客户端再次发送一个连接请求,包括ip、用户名

  4. 服务端得到客户端的请求后,会到authorized_keys()中查找,如果有响应的IP和用户,就会随机生

成一个字符串,例如:kgc

  1. 服务端将使用客户端拷贝过来的公钥进行加密,然后发送给客户端

  2. 得到服务端发来的消息后,客户端会使用私钥进行解密,然后将解密后的字符串发送给服务端

  3. 服务端接受到客户端发来的字符串后,跟之前的字符串进行对比,如果一致,就允许免密码登录

    [lisi@ky15-1 root]$ ssh-keygen  --help
    unknown option -- -
    usage: ssh-keygen [-q] [-b bits] [-t dsa | ecdsa | ed25519 | rsa | rsa1]
    [lisi@ky15-1 root]$ ssh-keygen -t ecdsa
    #生成密钥文件
    Generating public/private ecdsa key pair.
    Enter file in which to save the key (/home/lisi/.ssh/id_ecdsa):
    Created directory '/home/lisi/.ssh'.
    Enter passphrase (empty for no passphrase):
    Enter same passphrase again:
    Passphrases do not match.  Try again.
    Enter passphrase (empty for no passphrase):
    Enter same passphrase again:
    Passphrases do not match.  Try again.
    Enter passphrase (empty for no passphrase):
    Enter same passphrase again:
    Your identification has been saved in /home/lisi/.ssh/id_ecdsa.
    Your public key has been saved in /home/lisi/.ssh/id_ecdsa.pub.
    The key fingerprint is:
    SHA256:hbO1nsVS739lrS+T4lMg4NbYihnyx96e0eYFgqP6eK4 lisi@ky15-1
    The key's randomart image is:
    +---[ECDSA 256]---+
    |                 |
    |        ..       |
    |       .o=o .    |
    |    . . +*++..   |
    |     o *S.+.+.. .|
    |      +.+o * o. +|
    |      .o .+ o.o+.|
    |     o. . .=o.=..|
    |    E=o  .o.oo ++|
    +----[SHA256]-----+
    [lisi@ky15-1 .ssh]$ cd ~
    [lisi@ky15-1 .ssh]$ ssh-copy-id -i id_ecdsa.pub zhangsan@192.168.91.100
    #将公钥文件导入对方用户的 注意路径#到对面服务器
    [root@ky15 home]#cd zhangsan/
    [root@ky15 zhangsan]#ls -a
    .   .bash_history  .bash_profile  .cache   .mozilla
    ..  .bash_logout   .bashrc        .config  .ssh
    [root@ky15 zhangsan]#cd .ssh/
    [root@ky15 .ssh]#ls
    authorized_keys
    [root@ky15 .ssh]#cat authorized_keys
    ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBKQSA9IyCq51N+pngvuFSwoBsWBlzBPn1/pI73wSB+onDfd9i81aTl+QBysQFrDfWUcxlCKniUOP0BewP5rxD+o= lisi@ky15-1免交互登录
    [lisi@ky15-1 .ssh]$ ssh-add
    Enter passphrase for /home/lisi/.ssh/id_ecdsa:
    Identity added: /home/lisi/.ssh/id_ecdsa (/home/lisi/.ssh/id_ecdsa)
    #此处输入此前的密码
    [lisi@ky15-1 .ssh]$ ssh zhangsan@192.168.91.100
    Last login: Wed Sep 29 00:24:26 2021 from 192.168.91.101
    [zhangsan@ky15 ~]$ ssh-keygen -t ecdsa
    ssh-copy-id -i id_ecdsa.pub zhangsan@192.168.91.100
    ssh-add #与用户密码无关
    #IP地址无关
    #只与密钥对有关

    scp命令 —— 远程安全复制

    sftp命令 —— 安全FTP上下载

    格式:sftp user@host

    [root@ky15-1 .ssh]# sftp  root@192.168.91.100[root@ky15-1 .ssh]# sftp -oPort=220 root@192.168.91.100
    #如果修改了固定端口

■保护原理

■保护机制的实现方式

●方式1:通过tcpd程序对其他服务程序进行包装

●方式2:由其他服务程序调用libwrap.so. *链接库

■访问控制策略的配置文件

●/etc/hosts.allow

●/etc/hosts.deny

轻量级自动化运维工具pssh

EPEL源中提供了多个自动化运维工具

  • pssh:基于python编写,可在多台服务器上执行命令的工具,也可实现文件复制,提供了基于ssh

    和scp的多个并行工具,项目:http://code.google.com/p/parallel-ssh/

  • pdsh:Parallel remote shell program,是一个多线程远程shell客户端,可以并行执行多个远程

    主机上的命令。 可使用几种不同的远程shell服务,包括rsh,Kerberos IV和ssh,项目: https://p

    dsh.googlecode.com/

  • mussh:Multihost SSH wrapper,是一个shell脚本,允许使用命令在多个主机上通过ssh执行命

    令。 可使用ssh-agent和RSA/DSA密钥,以减少输入密码,项目:http://www.sourceforge.net/pr

    ojects/mussh

pssh 命令选项如下:

-H:主机字符串,内容格式”[user@]host[:port]”
-h file:主机列表文件,内容格式”[user@]host[:port]”
-A:手动输入密码模式
-i:每个服务器内部处理信息输出
-l:登录使用的用户名
-p:并发的线程数【可选】
-o:输出的文件目录【可选】
-e:错误输出文件【可选】
-t:TIMEOUT 超时时间设置,0无限制【可选】
-O:SSH的选项
-P:打印出服务器返回信息
-v:详细模式
--version:查看版本

安装需要配置开发源
[root@ky15-1 yum.repos.d]# cd /etc/yum.repos.d
[root@ky15-1 yum.repos.d]# vim CentOS-Base.repo
#最后一行添加
[epel]
name=epel
baseurl=https://mirrors.aliyun.com/epel/$releasever/x86_64https://mirrors.cloud.tencent.com/epel/$releasever/x86_64https://mirrors.huaweicloud.com/epel/$releasever/x86_64https://mirrors.tuna.tsinghua.edu.cn/epel/$releasever/x86_64
gpgcheck=0[root@ky15-1 yum.repos.d]#yum clean all
#清除缓存
[root@ky15-1 yum.repos.d]# pssh
[root@ky15-1 yum.repos.d]# ssh-keygen
#一路回车
[root@ky15-1 yum.repos.d]# ssh-copy-id 192.168.91.102
[root@ky15-1 yum.repos.d]# ssh-copy-id 192.168.91.105
#上传秘钥对
[root@ky15-1 yum.repos.d]# pssh -H 192.168.91.102 hostname -i
[1] 02:10:10 [SUCCESS] 192.168.91.102#管理多台,写入一个文件
[root@ky15-1 yum.repos.d]#vim hosts.txt
[root@ky15-1 yum.repos.d]#cat hosts.txt
10.0.0.8
10.0.0.6
[root@ky15-1 yum.repos.d]#pssh -h hosts.txt  -i   hostname #或者
[root@ky15-1 yum.repos.d]# pssh -H "192.168.91.102 192.168.91.105" -i cat /etc/passwd[1] 02:19:32 [SUCCESS] 192.168.91.102
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
polkitd:x:999:997:User for polkitd:/:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
chrony:x:998:996::/var/lib/chrony:/sbin/nologin
[2] 02:19:32 [SUCCESS] 192.168.91.105
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
polkitd:x:999:997:User for polkitd:/:/sbin/nologin
abrt:x:173:173::/etc/abrt:/sbin/nologin
libstoragemgmt:x:998:995:daemon account for libstoragemgmt:/var/run/lsm:/sbin/nologin
rpc:x:32:32:Rpcbind Daemon:/var/lib/rpcbind:/sbin/nologin
colord:x:997:994:User for colord:/var/lib/colord:/sbin/nologin
saslauth:x:996:76:Saslauthd user:/run/saslauthd:/sbin/nologin
setroubleshoot:x:995:993::/var/lib/setroubleshoot:/sbin/nologin
rtkit:x:172:172:RealtimeKit:/proc:/sbin/nologin
pulse:x:171:171:PulseAudio System Daemon:/var/run/pulse:/sbin/nologin
qemu:x:107:107:qemu user:/:/sbin/nologin
ntp:x:38:38::/etc/ntp:/sbin/nologin
radvd:x:75:75:radvd user:/:/sbin/nologin
chrony:x:994:990::/var/lib/chrony:/sbin/nologin
tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin
usbmuxd:x:113:113:usbmuxd user:/:/sbin/nologin
geoclue:x:993:988:User for geoclue:/var/lib/geoclue:/sbin/nologin
sssd:x:992:987:User for sssd:/:/sbin/nologin
gdm:x:42:42::/var/lib/gdm:/sbin/nologin
rpcuser:x:29:29:RPC Service User:/var/lib/nfs:/sbin/nologin
nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin
gnome-initial-setup:x:991:986::/run/gnome-initial-setup/:/sbin/nologin
avahi:x:70:70:Avahi mDNS/DNS-SD Stack:/var/run/avahi-daemon:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
tcpdump:x:72:72::/:/sbin/nologin
zhangsan:x:1000:1000:zhangsan:/home/zhangsan:/bin/bash
apache:x:48:48:Apache:/usr/share/httpd:/sbin/nologin
named:x:25:25:Named:/var/named:/sbin/nologin

总结

主要学习ssh远程登陆协议与tcp wappers,需要掌握ssh原理,对于pssh工具可以为了以后的工作学习学习

学习SSH远程登陆协议与TCP Wrappers相关推荐

  1. 远程登陆协议SSH和talnet

    SSH和talnet是远程登陆协议.这两种协议都是基于客户端和服务器的思想. 1.SSH (secure shell外壳保护协议)是建立在应用层和传输层上的安全协议,可以有效防止远程管理过程中的信息泄 ...

  2. DCN-2655 ssh 远程登陆配置

    DCN-2655 ssh 远程登陆配置: 命名路由器: 在全局模式配置AAA认证列表: 配置登录地址: 配置虚拟端口认证: 配置sshd服务: 命名路由器: Router>enable Rout ...

  3. 怎么一步步自建CentOS7 Minimal平台部署SSH远程登陆

    怎么一步步自建CentOS7 Minimal平台部署SSH远程登陆 ​ 首先,你得下载一个CentOS7 Minimal的镜像,我是在官网下载的 https://www.centos.org/down ...

  4. ssh远程登陆配置、公私钥密码ssh体系构建

    一.远程登陆服务openssh openssh服务器提供ssh远程加密登陆,常用于公网,加密数据传输过程中安全,默认装机最小化时候也是装好的,sshd服务配置文件是/etc/ssh/sshd_conf ...

  5. ssh 远程登陆异常SSH_EXCHANGE_IDENTIFICATION及解决过程

    ssh 远程登陆异常SSH_EXCHANGE_IDENTIFICATION及解决过程 参考文章: (1)ssh 远程登陆异常SSH_EXCHANGE_IDENTIFICATION及解决过程 (2)ht ...

  6. 树莓派命令行配置无线网络和SSH远程登陆

    无线网络配置 查找可用的网络 pi@raspberrypi:~ $ sudo iwlist wlan0 scanwlan0 Scan completed :Cell 01 - Address: 9C: ...

  7. 树莓派入门教程 - 0 - 准备篇 - 0.2 树莓派SSH远程登陆,VNC远程桌面

    电脑需要提前安装的工具: SSH.串口 - 终端神器 MobaXterm,官网下载链接:https://mobaxterm.mobatek.net/download.html VNC远程桌面工具 VN ...

  8. ssh远程登陆WSL

    ssh远程登陆WSL 一般情况下,WSL是不需要ssh远程登陆的,直接在Windows Terminal中打开即可.但是也有例外情况,那就是另一台电脑想登陆本电脑的WSL,这时就需要开启本地电脑的WS ...

  9. ssh远程访问及控制与TCP Wrappers

    远程访问及控制 文章目录 远程访问及控制 SSH协议 客户端和服务端 OpenSSH 配置opensSH服务端 设置SSH白名单和黑名单 使用SSH客户端程序 1. ssh远程登录 2. scp远程复 ...

最新文章

  1. 通过netstat+rmsock查找AIX端口对应进程
  2. Mac 下安装配置 Python 开发环境
  3. jQuery: 合并表格中相同文本的相邻单元格
  4. 最小二乘法,了解一下?
  5. OpenGL ES 3.2
  6. DB - 常用SQL积累
  7. java 汉字排序_Java中文排序
  8. API接口设计:token、timestamp、sign使用
  9. 调用百度地图API实现连线高铁线路的调用示例
  10. window如何连接mysql_window怎么连接mysql
  11. SQL应用·:用SQL分析供应商营业额
  12. python的并行计算框架
  13. 详细写出拆卸计算机的步骤和过程,CPU风扇(INTEL)的详细拆卸和安装方法_计算机软件和应用程序_IT / computer_special...
  14. 60.windbg----as、$u0(固定别名、自定义别名)
  15. 【深度学习】目标检测综述
  16. db2 jdbc 连接池_【转】java jdbc连接db2
  17. bulldog2 靶机渗透
  18. 线性代数——基变换和图像压缩
  19. UT-Exynos4412开发板三星ARM四核旗舰开发平台android4.0体验-7GPS功能调试支持
  20. 10分钟教你用python打造贪吃蛇超详细教程

热门文章

  1. GWAS - plink介绍与安装(Mac)
  2. Godsend(博弈)
  3. 最简单的ROS安装方法和rosdepc安装(一行代码搞定)
  4. 拼多多店铺采集如何采集?【爬虫技术】
  5. 【图像分类】基于PyTorch搭建LSTM实现MNIST手写数字体识别(双向LSTM,附完整代码和数据集)
  6. UnityVR中使用浏览器功能
  7. SpringBoot+thymeleaf 局部刷新
  8. RSTP与MSTP协议
  9. 怎么找到一个程序员做男朋友
  10. react-native 打包app发布android / ios详细教程