OpenSSH

ssh: secure shell, protocol, 22/tcp, 安全的远程登录

OpenSSH: ssh协议的开源实现;

dropbear:另一个开源实现;

 SSH协议版本

v1: 基于CRC-32MAC,不安全;man-in-middle

v2:双方主机协议选择安全的MAC方式

基于DH算法做密钥交换,基于RSADSA算法实现身份认证;

两种方式的用户登录认证:

基于password

基于key

 OpenSSH:

C/S

C: ssh, scp, sftp

Windows客户端:

xshell, putty, securecrt, sshsecureshellclient

S: sshd 

客户端组件:

ssh, 配置文件:/etc/ssh/ssh_config 

格式:ssh [user@]host [COMMAND]

  ssh [-l user] host [COMMAND]

   -p port:远程服务器监听的端口;

   -X: 支持x11转发;

   -Y:支持信任的x11转发; 

  Host PATTERN

   PARAMETER VALUE 

  基于密钥的认证:

   (1) 在客户端生成密钥对儿

   ssh -t rsa [-P ”] [-f “~/.ssh/id_rsa”]

例一:生成密钥对

[root@localhost ~]# ssh-keygen

   (2) 把公钥传输至远程服务器对应用户的家目录

   ssh-copy-id [-i [identity_file]] [user@]machine

例一:传输公钥

[root@localhost ~]# ssh-copy-id root@192.168.21.137

   (3) 测试

[root@localhost ~]# ssh root@192.168.21.137
Last login: Thu Jun 15 11:05:33 2017 from 192.168.21.137

scp命令:

scp [options] SRC… DEST/ 

存在两种情形:

PULLscp [options] [user@]host:/PATH/FROM/SOMEFILE /PATH/TO/SOMEWHERE

PUSH: scp [options] /PATH/FROM/SOMEFILE [user@]host:/PATH/TO/SOMEWHERE

例一:把etc/fstab文件复制到另外一台主机上

[root@localhost ~]# scp /etc/fstab root@192.168.21.137:/tmp/

常用选项:

-r: 递归复制;

-p: 保持原文件的属性信息;

-q: 静默模式

-P PORT: 指明remote host的监听的端口; 

sftp命令:

sftp [user@]host

sftp> help

例一:以指定用户的生份运行

[root@localhost ~]# sftp root@192.168.21.141
Connected to 192.168.21.141.
sftp>

服务器端:

sshd, 配置文件: /etc/ssh/sshd_config

常用参数:

Port 22022

ListenAddress ip

PermitRootLogin yes 

限制可登录用户的办法:

AllowUsers user1 user2 user3

AllowGroups 

ssh服务的最佳实践:

1、不要使用默认端口;

2、禁止使用protocol version 1

3、限制可登录用户;

4、设定空闲会话超时时长;

5、利用防火墙设置ssh访问策略;

6、仅监听特定的IP地址;

7、基于口令认证时,使用强密码策略;

# tr -dc A-Za-z0-9_ < /dev/urandom | head -c 30 | xargs

8、使用基于密钥的认证;

9、禁止使用空密码;

10、禁止root用户直接登录;

11、限制ssh的访问频度和并发在线数;

12、做好日志,经常分析; 

ssh协议的另一个实现:dropbear

(1) dropbearkey -t rsa -f /etc/dropbear/dropbear_rsa_host_key -s 2048

dropbearkey -t dss -f /etc/dropbear/dropbear_dss_host_key

dropbear -p [ip:]port -F -E

 

 

原创文章,作者:kang,如若转载,请注明出处:http://www.178linux.com/78334

(0)
kangkang
上一篇 2015-06-21 18:52
下一篇 2015-06-23 09:51

相关推荐

  • Hello World, Hello Linux.

    文笔不好,请见谅。

    2018-03-26
  • linux获取”命令帮助“

    一、相关术语:         外部命令:一个可执行程序,位于文件系统某目录下;是系统为了完善各种功能而加入的程序。         内部命令:系统shell程序的部分程序。内部命令执行速度非常快,其…

    Linux干货 2016-06-09
  • N25-第三周作业

    N25第三周作业 博客作业 1、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。 [root@ip-172-31-25-9 ~]# who|awk '{print $1}'|sort -u ec2-user [root@ip-172-31-25-9&n…

    Linux干货 2017-02-06
  • Linux中一些常用的命令(一)

    ls命令 ls命令:用来列出当前目录的内容或指定目录,是使用频率较高的命令 -l:以长格式显示目录下的内容列表。输出的信息从左到右依次包括文件名,文件类型、权限模式、硬连接数、所有者、组、文件大小和文件的最后修改时间等 -a:列出所有隐藏文件和目录 -h:以人类可读的方式将文件或者目录大小显示出来 -R:把当前目录下的目录的所有内容列出来(递归) -d:显示…

    Linux干货 2017-03-30
  • 第七周作业

    第七周 1,创建一个10G分区,并格式化为ext4文件系统;(1) 要求其block大小为2048,预留空间百分比为2,卷标为MYDATA,默认挂载属性包含acl;(2) 挂载至/data/mydata目录,要求挂载时禁止程序自动运行,且不更新文件的访问时间戳; [root@www ~]# fdisk /dev/sda <————-fd…

    Linux干货 2017-09-03
  • 硬链接与软链接的联系与区别

    硬链接与软链接的联系与区别 我们知道文件都有文件名与数据,这在 Linux 上被分成两个部分:用户数据 (user data) 与元数据 (metadata)。用户数据,即文件数据块 (data block),数据块是记录文件真实内容的地方;而元数据则是文件的附加属性,如文件大小、创建时间、所有者等信息。在 Linux 中,元数据中的 inode 号(ino…

    Linux干货 2016-10-23