ssh命令远程连接linux服务器(Linux服务器配置-SSH远程登录管理)
ssh命令远程连接linux服务器(Linux服务器配置-SSH远程登录管理)SSH服务监听端口,默认使用 22 端口,也可以使用多个端口,即重复使用 Port 这个设定项进行设定。Port二、SSH服务监听端口、守护进程及配置文件三、SSH配置文件常用设定项服务端设定项(/etc/ssh/sshd_config)
一、SSH服务简介
SSH是Secure Shell的缩写,由 IETF 网络工作小组所制定。SSH 是建立在应用层和传输层,基础上的安全协议。
SSH是目前可靠的,专为远程登录会话和其他网络服务提供安全性的协议。常用于远程登录,以及用户之间进行文件传输。利用ssh协议可以有效防止远程管理过程中的信息泄露。
使用SSH服务,需要安装相应的服务端和客户端。客户端和服务端的关系:如果,A机器想被B机器远程控制,那么,A机器需要安装SSH服务端,B机器需要安装SSH客户端。
二、SSH服务监听端口、守护进程及配置文件
- 相关软件包: openssh openssh-server openssh-clients
- SSH服务默认监听端口: 22
- Linux中守护进程为: sshd
- 服务端主程序: /usr/sbin/sshd
- 服务端配置文件: /etc/ssh/sshd_config
- 客户端主程序: /usr/bin/ssh
- 客户端配置文件: /etc/ssh/ssh_config
三、SSH配置文件常用设定项
服务端设定项(/etc/ssh/sshd_config)
Port
SSH服务监听端口,默认使用 22 端口,也可以使用多个端口,即重复使用 Port 这个设定项进行设定。
ListenAddress
指定sshd监听的网络地址,默认监听所有地址。可以使用下面的格式:
ListenAddress host|IPv4_addr|IPv6_addr
ListenAddress host|IPv4_addr:port
ListenAddress [host|IPv6_addr]:port
如果未指定 port ,那么将使用配置文件中 Port 指令的值,可以使用多个 ListenAddress 指令监听多个地址。
HostKey
主机私钥文件保存的位置。如果权限不对,sshd可能会拒绝启动。
SSH-1默认是:/etc/ssh/ssh_host_key 。
SSH-2默认是:/etc/ssh/ssh_host_rsa_key 和 /etc/ssh/ssh_host_dsa_key 。
一台主机可以拥有多个不同的私钥。rsa1仅用于SSH-1版本,dsa和rsa仅用于SSH-2版本。
SyslogFacility
指定 sshd 将日志消息通过哪个日志子系统(facility)发送。有效值是:DAEMON,USER,AUTH(默认), LOCAL0, LOCAL1, LOCAL2, LOCAL3,LOCAL4,LOCAL5,LOCAL6,LOCAL7。预设是以AUTHPRIV 来设定的,即保存在/var/log/secure 里面。
LogLevel
指定 sshd 的日志等级(详细程度)。可用值如下:QUIET FATAL ERROR INFO(默认) VERBOSE DEBUG DEBUG1 DEBUG2 DEBUG3。
DEBUG 与 DEBUG1 等价;DEBUG2 和 DEBUG3 则分别指定了更详细、更罗嗦的日志输出。比 DEBUG 更详细的日志可能会泄漏用户的敏感信息,因此反对使用。
LoginGraceTime
限制用户必须在指定的时限内认证成功,0 表示无限制。默认值是 120 秒。
PermitRootLogin
是否允许 root 用户登录!预设是允许的,但是建议设定成 no。
StrictModes
当使用者的 host key 改变之后,Server 就不接受联机,可以抵挡部分的木马程序!
MaxAuthTries
指定每个连接最大允许的认证次数,默认值是 6 。
MaxSessions
指定最大会话连接数,默认为10个。
RSAAuthentication
是否允许使用纯 RSA 公钥认证。仅适用于SSH-1版本。默认值是yes。
PubkeyAuthentication
是否允许公钥认证。仅适用于SSH-2版本。默认值为yes。
AuthorizedKeysFile
存放该用户可以用来登录的 RSA 或 DSA 公钥。默认值是:~/.ssh/authorized_keys。
设定若要使用不需要密码登录的账号时,那么那个账号存放密码所在文件名!
PasswordAuthentication
是否允许使用基于密码的认证,默认为yes。
PermitEmptyPasswords
是否允许密码为空的用户远程登录。默认为no。
ChallengeResponseAuthentication
是否允许任何的密码认证。任何login.conf 规定的认证方式,均可适用。默认值为yes。但目前推荐使用 PAM 模块帮忙管理认证,因此这个选项可以设定为 no !
利用 PAM 管理使用者认证有很多好处,它可以记录与管理。所以建议将 UsePAM 项设置为yes,将ChallengeResponseAuthentication 项设定为 no。
KerberosAuthentication
指定用户为PasswordAuthentication提供的密码是否将通过Kerberos KDC进行验证。要使用Kerberos认证,服务器需要一个可以校验 KDC identity 的 Kerberos servtab 。默认值是no。
GSSAPIAuthentication
是否允许使用基于 GSSAPI 的用户认证。默认值为no。仅用于SSH-2版本。
UsePAM
是否使用 PAM 模块帮忙管理认证。
AcceptEnv
指定客户端发送的哪些环境变量将会被传递到会话环境中。[注意]只有SSH-2版本的协议支持环境变量的传递(即服务端接收的环境变量)。指令的值是用空格分隔的变量名列表(其中可以使用*和?作为通配符)。也可以使用多个 AcceptEnv 达到同样的目的。需要注意的是,有些环境变量可能会被用于绕过禁止用户使用的环境变量。由于这个原因,该指令应当小心使用。
客户端设定项(/etc/ssh/ssh_config)
Host
选项 Host 只对能够匹配后面字串的计算机有效。“*”表示所有的计算机。
Port
设置连接到远程主机的端口,默认为22端口。
Protocol
指定 sshd 支持的SSH协议的版本,1和2表示仅支持SSH-1或SSH-2协议。2 1表示同时支持SSH-1和SSH-2协议。
Ciphers
指定SSH-2协议允许使用的加密算法,多个算法之间使用逗号分隔。可以使用的算法如下: aes128-cbc, aes192-cbc,aes256-cbc,aes128-ctr,aes192-ctr,aes256-ctr,3des-cbc,arcfour128,arcfour256,arcfour,blowfish-cbc,cast128-cbc;默认值是可以使用上述所有算法。
IdentityFile
设置从哪个文件读取用户的RSA安全验证标识。
StrictHostKeyChecking
如果设置成 yes,ssh就不会自动把计算机的密匙加入 $HOME/.ssh/known_hosts 文件,并且一旦计算机的密匙发生了变化,就拒绝连接。默认是 ask。
CheckHostIP
设置ssh是否查看连接到服务器的主机的IP地址以防止DNS欺骗,建议设置为yes。
PasswordAuthentication
设置是否使用密码验证。
RSAAuthentication
设置是否使用RSA算法进行安全验证。
ForwardAgent
设置连接是否经过验证代理,如果存在转发给远程计算机。
ForwardX11
设置X11连接是否被自动重定向到安全的通道和显示集(DISPLAY set)。
GSSAPIAuthentication
是否允许使用基于 GSSAPI 的用户认证。默认值为no,仅适用于SSH-2协议。
SendEnv
指定客户端发送哪些环境变量至服务端。
以上是我在学习Linux系统中整理的一些学习要点,肯定会有不对的地方,希望各位大侠给与指正,我们共同学习!谢谢!
Linux服务器配置-SSH远程登录管理(二)
将介绍配置中用到的相关命令,并通过实例说明怎样配置SSH基于密码认证登录。