1.sshd_config


  选项不区分大小写,参数区分大小写。

sshd_config选项及参数
选项 默认值 说明
AcceptEnv 不接受任何值  
AddressFamily any any/inet/inet6
AuthorizedKeysFile .ssh/authorized_keys 授权密钥文件
HostbasedAuthentication no 基于主机的客户端认证
AddressFamily   any/inet/inet6
port 22  
ListenAddress    
LoginGraceTime 2m 连接失败等待时间
PasswordAuthentication yes  
PermitEmptyPasswords no  
PermitRootLogin yes

yes/without-password/forced-commands-only/no

PrintLastLog

yes

登录的时候显示如下信息:

Last login: Sat May 27 10:57:13 2017 from 172.200.36.71

Protocol 2  
PubkeyAuthentication yes 仅仅在协议2适用
UseDNS yes  

2.ssh_config


  影响ssh命令行为的参数,配置文件位于“/etc/ssh/ssh_config”、“~/.ssh/config”以及命令行参数(优先级依次升高)。

ssh提供的选项
选项 默认值 说明

-1

-2

  使用协议1或协议2

-4

-6

  使用地址协议ipv4或ipv6
-b   指定本地连接用地址
-E log_file   重定向标准错误到文件
-F configfile

/etc/ssh/ssh_config

~/.ssh/config

指定的优先级最高
-i identity_file

协议1:

~/.ssh/identity

协议2:

~/.ssh/id_dsa

~/.ssh/id_ecdsa

~/.ssh/id_ed25519

~/.ssh/id

私钥
-l login_name   指定用户

-p port

22 连接的端口
PasswordAuthentication yes yes/no
Protocol 2

1/2/2,1

"2,1" 表示当协议2不可用时,使用协议1

PubkeyAuthentication yes

yes/no

仅仅适用于协议2

StrictHostKeyChecking ask

yes/no/ask

Are you sure you want to continue connecting (yes/no)?

  用户配置文件:

免去yes确认
StrictHostKeyChecking no
#IdentityFile ~/.ssh/identity
IdentityFile ~/.ssh/id_rsa
#IdentityFile ~/.ssh/id_dsa
服务监听
Port 22
Protocol 2
强制公钥验证
PubkeyAuthentication yes
#PasswordAuthentication no
user view

3.ssh密钥验证


  基于ssh协议创建管理密钥。基于 ssh1 version 创建 RSA 密钥;基于 ssh2 version 创建 RSA & DSA 密钥。在不给出必要选项时创建 ssh2 版的 RSA 密钥。用法上分为“用户验证”,和“主机密钥”;用户验证时,建议给密钥加密(长于10位),主机密钥建议不用加密。倘若加密后,密码忘记了,就只能重新生成密钥了。

-b    指定位数
-e    输出私钥的公钥内容
-f    指定密钥文件的文件名(包括输入输出)
-t    指定创建的密钥类型(RSA1 RSA DSA)
-l    打印公钥指纹
生成dsa密钥
# ssh-keygen -t dsa -b  -f dsa.key
生成rsa密钥
# ssh-keygen -t rsa -b  -f rsa.key
输出公钥,直接生成的和输出的公钥格式不同。
# ssh-keygen -e -f dsa.key
打印公钥指纹
$ ssh-keygen -l -f id_rsa.pub
9f:e5:f5:fb:::c9:::b0::cf:f7:c4::a3 id_rsa.pub (RSA)

3.1.rsa非对称密钥身份验证

  我们使用的openssh-server默认就支持公钥验证登录(无需任何配置)。只需用工具生成密钥对即可。仅仅需要把公钥字符串保存到指定文件、设置好目录、文件属性即可。

$ ssh-keygen
$ cat id_rsa.pub >> ~/.ssh/authorized_keys
$ chmod ~
$ chmod ~/.ssh
$ chmod ~/.ssh/*

上边设置了属性,当然要是执行的用户没有问题,属主、属组应该是没有问题的。

3.2.dsa非对称密钥身份验证

4.工具的公钥验证


4.1.ssh secure shell

4.1.1 生成登陆秘钥

“Edit”-〉“settings”,找到“keys”,生成秘钥。

使用rsa秘钥,默认设定,自定义秘钥名称。

找到公钥。上传到服务端。

4.1.2 要登陆的服务端设定

转换密钥格式

$ ssh-keygen -i -f 430g2 >> ~/.ssh/authorized_keys

退出当前登陆,或者直接重新登陆。

4.2.putty

4.2.1 使用puttygen生成秘钥对

4.2.2 转换秘要格式同上

4.2.3 选择认证秘钥

putty配置菜单,“连接”-〉“SSH”->“认证”,“浏览”“认证秘钥文件”。

备份

ssh secure shell

  “Profiles”设定的是关联到某一台主机的配置信息,点击“File-Save Layout”生成“*.ssh2”;“Settings”配置的是全局配置信息,点击“File-Save Settings”生成default.ssh2”。两个一起配置会对所有连接生效。

putty

  备份注册表节点“HKEY_CURRENT_USER/Software/SimonTatham”。

5.免密码登录


从客户端来看,SSH提供两种级别的安全验证。

第一种级别(基于口令的安全验证)

在需要登录的主机(openssh-server)上拥有帐号和口令,就可以登录到需要登录的主机(openssh-clients)。在client端和server端的数据传输都会被加密,但是不能保证正在连接的服务器就是真正需要连接的服务器。

第二种级别(基于密匙的安全验证)

创建一对密匙,把公用密匙放在需要访问的服务器上(server端)。需要连接到openssh-server时,客户端用创建的密匙首先进行安全验证请求。服务器收到请求之后,在该服务器上用户主目录下寻找创建的公匙,然后把公钥和客户端发送来的秘钥请求进行验证。

一对秘钥:公钥、私钥。使用公钥加密,私钥来解;使用私钥加密,公钥验证。公钥的作用:加密和验证;私钥的作用:加密和解密。

基于密钥的验证(无密码登录)

    sunny@hhh1 ==>> root@hhh2
&# rpm -qa | grep openssh-clients
&# rpm -qa | grep openssh
$ ssh-keygen (一路回车)
$ ls ~/.ssh
$ scp ~/.ssh/id_rsa.pub root@hhh2:/root/test/
$ vi /etc/ssh/ssh_config

* ssh-keygen生成的正好是这个名字。前面是个“#”,表示这个是默认值。

$ ssh hhh2
# cat /root/test/id_rsa.pub > /root/test/loginhhh
# chmod /root/test
# chmod /root/test/logintest
# vi /etc/ssh/sshd_config

# /etc/init.d/sshd restart
# exit
# ssh hhh2

* 说明:

设置无密码登录以后,首次登录需要确认一次登录。只需要输入 “yes” 。

上面的说明就是说如果在脚本中这么个应用虽然免去输入密码,可是还得输入“yes”来确认呢。如果有1w台主机需要登录呢。是不是要疯呢,答案是不必疯。

# vi /etc/ssh/ssh_config

该选项默认是 ask ,这么一个修改,便不再询问。……(* ssh_config)

* FAQ-01

经常在配置完成后,发现登陆时提示需要密码。检查好几遍都没有发现那里出现错误。

在上边的例子中是把公钥文件改名。而实际生产环境常常考虑到多人维护的问题,使用默认

名称。这个时候文件名应该是:authorized_keys,出现问题的症结在于文件名错误地

写成:authorized.keys。好像以“.”分隔文件名已经成为习惯了。

# cp id_rsa.pub authorized_keys

* FAQ-02

配置上问题检查完了,也有无法登陆的问题。关闭防火墙,检查selinux试试看。

# sestatus
# vi /etc/selinux/config
# iptables -L
# iptables -F
# /etc/init.d/iptabes save

sshd_config的更多相关文章

  1. ssh配置文件ssh_config和sshd_config区别

    问题描述:在一次配置ssh端口和秘钥登录过程中,修改几次都没有成功.最后发现修改的是ssh.config,原因是习惯tab一下,实在是眼拙! ssh_config和sshd_config配置文件区别: ...

  2. 修复AWS上EC2损坏的sshd_config文件

    常识: AWS是没有root用户的,登陆也都是通过SSH KEY完成授权认证. 背景: 正在AWS上搭一个CI (GO),与gitlab,为了将其进行集成,需将gitlab的deploy key设置成 ...

  3. SSH(2)-- ssh_config和sshd_config

    假定服务器ip为192.168.1.139,ssh服务的端口号为22,服务器上有个用户为pi,两边都是ubuntu. ssh_config和sshd_config都是ssh服务器的配置文件,二者区别在 ...

  4. sshd_config配置 详解

    原文:http://blog.licess.org/sshd_config/ # 1. 关于 SSH Server 的整体设定,包含使用的 port 啦,以及使用的密码演算方式 Port 22 # S ...

  5. 配置sshd_config中的PermitRootLogin设置root登录或者禁止root登录

    在etc的sshd_config文件中,默认有PermitRootLogin no的配置,这个的意思是禁止root用户登录,如果想要允许root登录,需要su root用户到sshd_config下进 ...

  6. linux下sshd_config的StrictModes参数

    今天在两台机器A和B上设置免密码登录,A机是Centos6.5,B机是Centos7,我想通过A机免密码登录到B机,在两台机器上设置好公钥和私钥后,在A机上通过ssh连接B机,每次都是要让我手动输入密 ...

  7. sshd_config 配置文件参数详解

    sshd_config配置详解 名称sshd_config - OpenSSH SSH 服务器守护进程配置文件 大纲/etc/ssh/sshd_config 描述sshd(8) 默认从 /etc/ss ...

  8. sshd_config配置详解

    sshd_config配置详解 名称 sshd_config - OpenSSH SSH 服务器守护进程配置文件 大纲 /etc/ssh/sshd_config 描述 sshd(8) 默认从 /etc ...

  9. zabbix 对/etc/ssh/sshd_config文件的监控 但status为unknowen

    原因为该文件没有被访问的权限: # ll /etc/ssh/sshd_config -rw------- root root Apr : /etc/ssh/sshd_config 授权后再看: [ro ...

随机推荐

  1. tornado 笔记

    简单比较Django和Tornado Django是走大而全的方向,注重的是高效开发,最出名的是全自动化管理后台 Tornado走的是少而精的方向,注重的是性能的优化,最出名的是异步非堵塞 安装方式: ...

  2. WINSCP传输文件自动赋予777权限

    WinSCP WinSCP是一个Windows环境下使用SSH的开源图形化SFTP客户端.同时支持SCP协议.它的主要功能就是在本地与远程计算机间安全的复制文件. 为了复制到Linux的文件具有777 ...

  3. Spring Cloud(Dalston.SR5)--Eureka 服务提供者

    要使微服务应用向注册中心发布自己,首先需要在 pom.xml 配置文件中增加对 spring-boot-starter-eureka 的依赖,然后在主类中增加 @EnableDiscoveryClie ...

  4. centos绑定多个域名

    正在使用aliyun主机,运行centos6.4 64位系统,安装lamp环境后进行域名绑定.配置文件如下: <VirtualHost *:80> DocumentRoot /var/ww ...

  5. Python标示符和关键字

    标示符 什么是标示符,看下图: 标识符就是开发人员在程序中自定义的一些符号和名称. 标示符是自己定义的,如变量名 .函数名等. 标示符的规则 标示符由字母.下划线和数字组成,且数字不能开头 pytho ...

  6. 跟着未名学Office - 熟练使用WORD

    目录 第一章.Word之编辑篇. 1 第一节 页面布局... 1 第二节 格式编辑... 1 第三节 表.图.域... 5 第四节 审阅.保护... 7 第五节 *插入对像... 9 第二章.Word ...

  7. 在CAD二次开发中使用进度条

    ProgressMeter pm = new ProgressMeter(); pm.Start("正在执行..."); pm.SetLimit(100); for (int i ...

  8. 关于MySql悲观锁与乐观锁

    悲观锁与乐观锁是两种常见的资源并发锁设计思路,也是并发编程中一个非常基础的概念.本文将对这两种常见的锁机制在数据库数据上的实现进行比较系统的介绍. 悲观锁(Pessimistic Lock) 悲观锁的 ...

  9. Python——函数,模块,简单文件读写(python programming)

    函数(function)定义原则: 最大化代码重用,最小化代码冗余,流程符合思维逻辑,少用递归; 函数的定义方法: def function_name(param_1, param_2): ..... ...

  10. 刚刚研究了下ipv6,尝试配置内网VPS的IPv6地址

    刚刚研究了下ipv6,尝试配置内网VPS的IPv6地址是3台设备,分别是客户机Windows系统.核心交换机.PPPoE拨号的路由器 第一步:在PPPoE拨号的路由器上面查看ppp0拨号的地址 ifc ...