SSH(Secure Shell)最初由芬兰的一家公司开发,但由于受版权和加密算法的限制,很多人转而使用免费的替代软件OpenSSH。SSH是由客户端和服务端的软件组成的,有两个不兼容的版本,分别是:1.x和2.x。用SSH 2.x的客户程序是不能连接到SSH 1.x的服务程序上去的。OpenSSH 2.x同时支持SSH 1.x和2.x
solaris10使用的ssh服务器是opensshd,当然也有付费的商业版本的sshd出售。就目前的情况看来,openssh已经在你安装操作系统的时候默认安装在系统上了,而且这个服务会随系统自动运行。可以使用命令svcs查看ssh是否正常运行,如图2 如果已经正常运行可以关闭不安全的telnet服务。
图 2 关闭不安全的telnet服务 |
下面需要理解OPENSSH配置文件/etc/ssh/sshd_config。
“/etc/ssh/sshd_config” 配置文件是OpenSSH的配置文件,允许设置选项改变这个守护进程的运行。这个文件的每一行包含“关键词-值”的匹配,其中“关键词”是忽略大小写的。下面列出来的是最重要的关键词。编辑“sshd_config”文件(vi /etc/ssh/sshd_config),加入或改变下面的参数(#后是说明文字):
Protocol 2 #使用版本2协议#
Port 22
# “Port”设置sshd监听的端口号。#
ListenAddress ::
#“ListenAddress”设置sshd服务器绑定的IP地址。#
AllowTcpForwarding no #是否许可端口转发# GatewayPorts no #是否许可使用网关端口# X11Forwarding yes X11DisplayOffset 10 X11UseLocalhost yes
#“X11Forwarding”设置是否允许X11转发。#
PrintMotd no
#“PrintMotd”设置sshd是否在用户登录的时候显示“/etc/motd”中的信息。#
KeepAlive yes SyslogFacility auth LogLevel info
#“LogLevel”设置记录sshd日志消息的层次。INFO是一个好的选择。查看sshd的man帮助页,已获取更多的信息。#
HostKey /etc/ssh/ssh_host_rsa_key HostKey /etc/ssh/ssh_host_dsa_key
#“HostKey”设置包含计算机私人密匙的文件。#
ServerKeyBits 768 #“ServerKeyBits”定义服务器密匙的位数。#
KeyRegenerationInterval 3600
#“KeyRegenerationInterval”设置在多少秒之后自动重新生成服务器的密匙(如果使用密匙)。重新生成密匙是为了防止用盗用的密匙解密被截获的信息。#
StrictModes yes
# StrictModes”设置ssh在接收登录请求之前是否检查用户家目录和rhosts文件的权限和所有权。这通常是必要的,因为新手经常会把自己的目录和文件设成任何人都有写权限#
LoginGraceTime 600 MaxAuthTries 6 MaxAuthTriesLog 3 PermitEmptyPasswords no #是否许可空密码登录# PasswordAuthentication yes
#“PasswordAuthentication”设置是否允许口令验证。#
PAMAuthenticationViaKBDInt yes PermitRootLogin no #是否许可root用户登录# # sftp subsystem Subsystem sftp /usr/lib/ssh/sftp-server IgnoreRhosts yes RhostsAuthentication no RhostsRSAAuthentication no
#“RhostsAuthentication”设置只用rhosts或“/etc/hosts.equiv”进行安全验证是否已经足够。#
RSAAuthentication yes
#“RSAAuthentication”设置是否允许只有RSA安全验证。#
|
另外一个配置文件是“/etc/ssh/ssh_config”文件是OpenSSH系统范围的配置文件,允许你通过设置不同的选项来改变客户端程序的运行方式下面逐行说明上面的选项设置:
Host * :选项“Host”只对能够匹配后面字串的计算机有效。“*”表示所有的计算机。
ForwardAgent no :“ForwardAgent”设置连接是否经过验证代理(如果存在)转发给远程计算机。 ForwardX11 no :“ForwardX11”设置X11连接是否被自动重定向到安全的通道和显示集(DISPLAY set)。 RhostsAuthentication no :“RhostsAuthentication”设置是否使用基于rhosts的安全验证。 RhostsRSAAuthentication no :“RhostsRSAAuthentication”设置是否使用用RSA算法的基于rhosts的安全验证。 RSAAuthentication yes :RSAAuthentication”设置是否使用RSA算法进行安全验证。 PasswordAuthentication yes :“PasswordAuthentication”设置是否使用口令验证。 FallBackToRsh no:“FallBackToRsh”设置如果用ssh连接出现错误是否自动使用rsh。 UseRsh no :“UseRsh”设置是否在这台计算机上使用“rlogin/rsh”。 BatchMode no :“BatchMode”如果设为“yes”,passphrase/password(交互式输入口令)的提示将被禁止。当不能交互式输入口令的时候,这个选项对脚本文件和批处理任务十分有用。 CheckHostIP yes :“CheckHostIP”设置ssh是否查看连接到服务器的主机的IP地址以防止DNS欺骗。建议设置为“yes”。 StrictHostKeyChecking no :“StrictHostKeyChecking”如果设置成“yes”,ssh就不会自动把计算机的密匙加入“$HOME/.ssh/known_hosts”文件,并且一旦计算机的密匙发生了变化,就拒绝连接。 IdentityFile ~/.ssh/identity :“IdentityFile”设置从哪个文件读取用户的RSA安全验证标识。 Port 22 :“Port”设置连接到远程主机的端口。 Cipher blowfish :“Cipher”设置加密用的密码。 EscapeChar ~ :“EscapeChar”设置escape字符。 |
你可以修改这两个配置文件以获得更好的安全性。
solaris查看ssh服务有没有启动(自带有OPENSSH)
# svcs -a | grep ssh
online 20:51:27 svc:/network/ssh:default
3.4 修改配置文件使ROOT可以通过SSH远程登录,配置文件在/etc/ssh/sshd_config ,将PermitRootLogin no 改成 PermitRootLogin yes即可,保存退出
3.5 重新启动 SSH服务。 #svcadm restart ssh