openssh在线资料http://wiki.ubuntu.org.cn/OpenSSH%E9%AB%98%E7%BA%A7%E6%95%99%E7%A8%8B 


一、openssh是什么

    OpenSSH 是一组用于安全地访问远程计算机的连接工具。 它可以作为 rlogin、 rsh rcp 以及 telnet 的直接替代品使用。 更进一步, 其他任何 TCP/IP 连接都可以通过 SSH 安全地进行隧道/转发。 OpenSSH 对所有的传输进行加密, 从而有效地阻止了窃听、 连接劫持, 以及其他网络级的***。OpenSSH 由 OpenBSD project 维护。


二、为什么使用

    OpenSSH 工具将会增进你的系统安全性。 所有使用 OpenSSH 工具的通讯,包括口令,都会被加密。 telnet 和 ftp 使用纯文本口令,并被明文发送。这些信息可能会被截取,口令可能会被检索,然后未经授权的人员可能会使用截取的口令登录进你的系统而对你的系统造成危害。你应该尽可能地使用 OpenSSH 的工具集合来避免这些安全问题。


另一个使用 OpenSSH 的原因是,它自动把 DISPLAY 变量转发给客户机器。换一句话说,如果你在本地机器上运行 X 窗口系统,并且使用 ssh 命令登录到了远程机器上,当你在远程机器上执行一个需要 X 的程序时,它会显示在你的本地机器上。如果你偏爱图形化系统管理工具,却不能够总是亲身访问该服务器,这就会为你的工作大开方便之门。 

三、使用scp命令可以传输文件

    scp [本地文件] [用户名@远程主机IP地址:/目标文件]

    

            -r: 复制目录时使用

    -p: 保持源文件的元数据信息,包括mode和timestamp

    -q: 静默模式

    -p PORT: 指定ssh协议监听的端口


四、配置openssh服务器

    首先查看是否安装openssh服务器端软件包,如果没安装就YUM安装

wKioL1Pd9AOgoZZzAAK5jL6o-VM727.jpg


    查看配置文件/etc/ssh/sshd_config可根据自己需求随时修改

    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服务

wKiom1Pd-FWSZk-zAAKDyknTC0U765.jpg从客户端远程登录openssh服务器

wKiom1Pd-VmRB818AAOQk4cFOU4330.jpg

五、基于密钥的认证安装

      在linux客户端配置生成密钥对

wKiom1Pd_cawL4X-AAGGLAQZ7Zs315.jpg

    将客户端生成的公钥文件拷贝到服务器上

    wKiom1Pd_zODPYsUAAGI4Q0_RPY954.jpg

    重启服务器端,并客户端验证

wKioL1PeAd-iRbggAADPi2QixKs053.jpg

wKiom1PeAMXyWSU4AAJabM72wCw027.jpg


   1.ssh远程服务与传统的telnet相比,已经比较安全,在密码传输过程中,可以使用公钥加密技术,使得密码的传输过程更加的安全、可靠,让你更加放心地远程管理你的linux系统。
  2.除了在linux客户端生成密钥对之外,还可以在windows平台上借助第三方软件puttygen生成密钥对,具体操作自己会上网就能解决,这里不再叙述。