openSSH

SSH

许多网络程序,如 telnet rsh rlogin rexec ,用明文( plain text )传送口令和秘密的信
息,所以就可利用任何连接到网络上的计算机监听这些程序和服务器之间的通信并获取口令和秘密信息。现在, telnet 程序对于日常的管理工作是必不可少的,但是它又是不安全的,那么用什么来替代它呢? OpenSSH 就是那些过时的、不安全的远程登录程序,如: telnet rlogin rsh rdist rcp 的替代品。
OpenSSH README 文件中提到: ssh Secure Shell )程序可以通过网络登录到远程主机并执行命令。它提供了很强的安全验证可以在不安全的网络中进行安全的通信。
我们把 OpenSSH 配置成支持 TCP-Wrappers inetd 超级服务器),这样能够进一步地提高安全性而且也没有必要把 OpenSSH 作为守护进程( daemon )在后台运行。当客户端的程序提出连接请求的时候, TCP-Wrappers 守护进程就会在把连接重定向到 OpenSSH 之前,对连接请求进行验证和授权。 OpenSSH 是自由软件而且使用不受专利保护的加密算法。因此,我建议你使用 OpenSSH (免费而且修正了一些 bug ),而不使用 SSH1 (免费但是有 bug )和 SSH2 (现在使用商用的许可协议)。
Openssh 的软件包 rpm
1.       Openssh
2.       openssh-clients
3.       openssh-askpass
4.       Openssh-askpass-gnome 这是作为客户端必备的 4 个包。
5.       Openssh-server 这个是作为服务端的包。
Openssh 提供三种认证机制:
Password 基于口令的认证
RSA/DSA 基于密钥的认证 ( 客户端把公钥放在对方用户的家目录下的 .ssh 目录下 )
Kerberos 基于令牌的认证(密码不需要在网络上发送)
.
1. 在本地生成一对密钥,使用 -t 指定生成密钥的类型(( rsa/dsa ))
默认保存在什么地方,问你要不要改名
输入一个密码去保护这个私钥文件
生成一个是 ~/.ssh/Id_rsa 私钥文件
生成一个是 ~/.ssh/id_rsa.pub 公钥文件
2. 将生成的私钥拷贝到对方机器
使用 -i 指定私钥文件 , 实际上它拷贝的时候 linux 根据私钥去拷贝的是公钥文件。
3. 以后你在登录另一台主机的时候就不用在输密码了。
Openss:
客户端配置文件: /etc/ssh/ssh_config
服务端配置文件 :/etc/ssh/sshd_config
/etc/init.d/sshd 可以使用 server sshd start|restart|stop|status
 
 
 
 

配置“/etc/ssh/sshd_config”文件

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 字符。
 
附:
Ssh 也读取 /etc/motd 的这个文件,等客户端登录会显示这个文件内的信息 , 可以警告用户不要做非法的事情!呵呵!

配置“/etc/sshd/sshd_config”文件

配置“ /etc/ssh/sshd_config ”文件
/etc/ssh/sshd_config ”是 OpenSSH 的配置文件,允许设置选项改变这个 daemon 的运行。这个文件的每一行包含“关键词-值”的匹配,其中“关键词”是忽略大小写的。下面列出来的是最重要的关键词,用 man 命令查看帮助页( sshd (8) )可以得到详细的列表。
编辑“ sshd_config ”文件( vi /etc/ssh/sshd_config ),加入或改变下面的参数:
# This is ssh server systemwide configuration file.
Port 22
ListenAddress 192.168.1.1
HostKey /etc/ssh/ssh_host_key
ServerKeyBits 1024
LoginGraceTime 600
KeyRegenerationInterval 3600
PermitRootLogin no
IgnoreRhosts yes
IgnoreUserKnownHosts yes
StrictModes yes
X11Forwarding no
PrintMotd yes
SyslogFacility AUTH
LogLevel INFO
RhostsAuthentication no
RhostsRSAAuthentication no
RSAAuthentication yes
PasswordAuthentication yes
PermitEmptyPasswords no
AllowUsers admin
下面逐行说明上面的选项设置:
Port 22
Port ”设置 sshd 监听的端口号。
ListenAddress 192.168.1.1
ListenAddress ”设置 sshd 服务器绑定的 IP 地址。
HostKey /etc/ssh/ssh_host_key
HostKey ”设置包含计算机私人密匙的文件。
ServerKeyBits 1024
ServerKeyBits ”定义服务器密匙的位数。
LoginGraceTime 600
LoginGraceTime ”设置如果用户不能成功登录,在切断连接之前服务器需要等待的时间(以
秒为单位)。
 
KeyRegenerationInterval 3600
KeyRegenerationInterval ”设置在多少秒之后自动重新生成服务器的密匙(如果使用密匙
)。重新生成密匙是为了防止用盗用的密匙解密被截获的信息。
PermitRootLogin no
PermitRootLogin ”设置 root 能不能用 ssh 登录。这个选项一定不要设成“ yes ”。
IgnoreRhosts yes
IgnoreRhosts ”设置验证的时候是否使用“ rhosts ”和“ shosts ”文件。
IgnoreUserKnownHosts yes
IgnoreUserKnownHosts ”设置 ssh daemon 是否在进行 RhostsRSAAuthentication 安全验证的
时候忽略用户的“ $HOME/.ssh/known_hosts
StrictModes yes
StrictModes ”设置 ssh 在接收登录请求之前是否检查用户家目录和 rhosts 文件的权限和所有权。这通常是必要的,因为新手经常会把自己的目录和文件设成任何人都有写权限。
X11Forwarding no
X11Forwarding ”设置是否允许 X11 转发。
PrintMotd yes
PrintMotd ”设置 sshd 是否在用户登录的时候显示“ /etc/motd ”中的信息。
SyslogFacility AUTH
SyslogFacility ”设置在记录来自 sshd 的消息的时候,是否给出“ facility code ”。
LogLevel INFO
LogLevel ”设置记录 sshd 日志消息的层次。 INFO 是一个好的选择。查看 sshd man 帮助页,已获取更多的信息。
RhostsAuthentication no
RhostsAuthentication ”设置只用 rhosts 或“ /etc/hosts.equiv ”进行安全验证是否已经足
 
够了。
RhostsRSAAuthentication no
RhostsRSA ”设置是否允许用 rhosts 或“ /etc/hosts.equiv ”加上 RSA 进行安全验证。
RSAAuthentication yes
RSAAuthentication ”设置是否允许只有 RSA 安全验证。
PasswordAuthentication yes
PasswordAuthentication ”设置是否允许口令验证。
PermitEmptyPasswords no
PermitEmptyPasswords ”设置是否允许用口令为空的帐号登录。
AllowUsers admin
AllowUsers ”的后面可以跟着任意的数量的用户名的匹配串( patterns )或 user@host 这样
的匹配串,这些字符串用空格隔开。主机名可以是 DNS 名或 IP 地址。

你可能感兴趣的:(职场,openssh,休闲)