OpenSSH 是 SSH (Secure SHell) 协议的免费开源实现。SSH协议族可以用来进行远程控制, 或在计算机之间传送文件。而实现此功能的传统方式,如telnet(终端仿真协议)、 rcp ftp、 rlogin、rsh都是极为不安全的,并且会使用明文传送密码。OpenSSH提供了服务端后台程序和客户端工具,用来加密远程控件和文件传输过程中的数据,并由此来代替原来的类似服务。

  OpenSSH是使用SSH透过计算机网络加密通讯的实现。它是取代由SSH Communications Security所提供的商用版本的开放源代码方案。目前OpenSSH是OpenBSD的子计划。

  OpenSSH常常被误认以为与OpenSSL有关联,但实际上这两个计划的有不同的目的,不同的发展团队,名称相近只是因为两者有同样的软件发展目标──提供开放源代码的加密通讯软件。

  ssh主要有两个版本V1(基本不使用),V2

 客户端工具:

    linux:ssh

    windows:putty,securecrt,sshsecureshellclient,xmanager

  服务器端工具:

    linux:sshd

 认证:

  (1)基于口令认证

  (2)基于秘钥认证

安装包:rpm -qa | grep ssh

OpenSSH服务及其相关应用_linux

查看ssh版本:ssh -version

OpenSSH服务及其相关应用_服务器_02

相关文件:

OpenSSH服务及其相关应用_服务器_03

配置文件:

  客户端:/etc/ssh/ssh_config

  服务器端:/etc/ssh/sshd_config

秘钥:

 V2版本的秘钥:

  rsa:ssh_host_rsa_key,ssh_host_rsa_key.pub

  dsa:ssh_host_dsa_key,ssh_host_dsa_key.pub

  V1版本的秘钥:

  ssh_host_key,ssh_host_key.pub

服务器配置文件说明:

port 22 端口

AddressFamily any  指定 sshd(8) 应当使用哪种地址族。取值范围是:"any"(默认)、"inet"(仅IPv4)、"inet6"(仅IPv6)。

Protocol 2 默认使用协议版本

KeyRegenerationInterval 1h 秘钥多久更换一次

ServerKeyBits 1024 秘钥长度

LoginGraceTime 2m 登录超时时长

PermitRootLogin yes 是否允许root直接登录(建议关闭,使用普通用户登录后su到root)

MaxAuthTries 6 试错登录次数

PrintLastLog yes 打印上次登录信息(尽量不要暴露这些信息)

Subsystem       sftp    /usr/libexec/openssh/sftp-server 关于sftp的设置

 sftp是基于ssh,ftps基于ssl


ssh使用技巧:

ssh -l 用户名 远程主机名 ['command'] 不登录远程主机,但返回命令执行结果

ssh 用户名@远程主机名

-X:enablex11 forwarding

-Y


~/.ssh/known_hosts保存登录信息,其权限为644


实验:基于秘钥的认证

1、生成一对秘钥(ssh-keygen)

ssh-keygen -t 指定算法 -f 保存文件位置及名称(默认在/home/用户/.ssh/id_rsa) -N 指定密码

OpenSSH服务及其相关应用_服务器_04

2、将公钥传输至服务器端某用户家目录下的.ssh/authorized_keys文件中

(1)使用工具ssh-copy-id

用法:ssh-copy-id–i /path/to/pubkey 用户名@主机名

OpenSSH服务及其相关应用_linux_05

(2)scp,然后追加到authorized_keys

3、测试登录

OpenSSH服务及其相关应用_服务器_06


总结:

1、密码要经常换

2、使用非默认端口

3、限制登录地址

4、禁止管理员登录

5、仅开放有限用户

6、使用基于秘钥的认证

7、不要使用v1版本


scp和sftp用法:

1、scp:基于ssh的远程复制命令,可以实现在主机之间传输数据

命令格式:scp [options]src dest

远程主机

用户名@主机名:/path/to/somefile

options常用选项有以下几种:

-r:  递归复制,复制目录时使用

-p:保持源文件的元数据信息;主要是mode和timestamp

-q:静默模式

-P  PORT: 指定远程服务器的端口

2、sftp:

sftp   [USER@]HOST

OpenSSH服务及其相关应用_linux_07


小技巧:

  如果想基于秘钥连接linux,可以按下图进行操作:

1、

OpenSSH服务及其相关应用_linux_08

2、

OpenSSH服务及其相关应用_服务器_09

3、

OpenSSH服务及其相关应用_linux_10

4、

OpenSSH服务及其相关应用_linux_11

5、

OpenSSH服务及其相关应用_linux_12

6、

OpenSSH服务及其相关应用_服务器_13

7、cat id_rsa_1024.pub >> .ssh/authorized_keys

8、

OpenSSH服务及其相关应用_linux_14

  仅为个人学习整理,如有错漏,大神勿喷~~~