SSH

一、简介

SSH 是为远程登陆会话和其他网络服务提供安全性的协议

默认端口号为:22
客户端配置文件:/etc/ssh/ssh_config
服务端配置文件:/etc/ssh/sshd_config

二、ssh_config

ssh_config 配置文件常用参数

Host *		#  有效的主机(多个主机可用空格隔, “*” 表示所有)
ForwardAgent no	#  连接是否经过代理验证(如果是)转发给远程计算机
ForwardX11 no	#  连接受否被自动重定向到安全的通道和显示集
RhostsRSAAuthentication no	#  不使用 RSA 算法基于 rhosts 的安全验证(仅 Version 1 版本使用)
RSAAuthentication yes		#  使用 RSA 算法进行安全验证
PasswordAuthentication yes	#  使用口令验证
HostbasedAuthentication no	#  与 RhostsRSAAuthentication 类似(Version2 使用)。
GSSAPIAuthentication no		#  是否允许使用基于 GSSAPI 的用户认证(默认值为 ”yes”,仅用于 Version2)
BatchMode no			#  如为 “yes“,passphrase/password(交互式输入口令)的提示将被禁止
CheckHostIP yes			#  设置 SSH 是否检查看连接到服务器的主机的 IP 地址以防止 DNS 欺骗(建议设置为 “yes“)
AddressFamily any		#  指定使用哪种地址协议(默认:any、仅IPv4:IPv4、仅IPv6:IPv6)
ConnectTimeout 0		#  设置连接超时时间
StrictHostKeyChecking ask       #  如果设置为 ”yes“,则不会自动把计算机的密钥加入 ”HOME/.ssh/known_hosts" 文件,并且以一旦计算机的密钥发生了变化,就拒绝连接
IdentityFile ~/.ssh/identity	#  设置从哪个文件读取用户的 RSA 安全验证标识
IdentityFile ~/.ssh/id_rsa
IdentityFile ~/.ssh/id_dsa
IdentityFile ~/.ssh/id_ecdsa
IdentityFile ~/.ssh/id_ed25519
Port 22			#  设置端口号
Protocol 2		#  指定 SSH 的协议版本,1 或 2(如需同时支持两者,只需使用逗号分隔,如:1,2)
Cipher 3des		#  设置加密用的密码
Ciphers aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,aes128-cbc,3des-cbc	#  指定 Version2 使用的加密算法(多个算法之间使用逗号分隔)
MACs hmac-md5,hmac-sha1,umac-64@openssh.com,hmac-ripemd160	#  制定允许在 Version2 中使用哪些消息摘要算法来进行数据校验

三、sshd_config

sshd_config 配置文件常用参数

#  常用
Port 22			#  端口号
AddressFamily any	#  指定使用哪种地址协议(默认:any、仅IPv4:IPv4、仅IPv6:IPv6)
ListenAddress 0.0.0.0	#  监听地址(0.0.0.0 表示所有地址)
ListenAddress ::	#  监听地址(IPv6 地址)
Protocol 2		#  指定 SSH 的协议版本,1 或 2(如需同时支持两者,只需使用逗号分隔,如:1,2)
LogLevel INFO		#  日志等级(QUIET, FATAL, ERROR, INFO, VERBOSE, DEBUG, DEBUG1, DEBUG2, and DEBUG3)
UserDNS no		#  禁止DNS反向解析

#  用户相关
PermitRootLogin no	#  禁止root用户登录
PermitEmptyPasswords no #  禁止空密码用户登录
LoginGraceTime 2m	#  登录验证时间为2分钟
MaxAuthTries 6		#  最大重试次数6次
AllowUsers steven	#  只允许 steven 用户登录
DenyUsers steven	#  不允许登录用户 steven

#  验证
PasswordAuthentication yes	#  启用密码验证(如配置密钥登录,则需关闭此项)
PubkeyAuthentication yes	#  启用密匙验证
RSAAuthentication yes		#  使用 RSA 算法进行安全验证
AuthorizedKeysFile      .ssh/authorized_keys		#  指定公钥数据库文件(用于密钥登陆)

四、常用命令

ssh

ssh 是 openssh 套件中的客户端连接工具

#  ssh 常用参数
-1	#  强制使用 ssh 协议版本1
-2	#  强制使用 ssh 协议版本2
-4	#  强制使用 IPV4 地址
-6	#  强制使用 IPV6 地址
-A	#  开启认证代理连接转发功能
-a	#  关闭认证代理连接转发功能
-b	#  使用本机指定地址作为对应连接的源 IP 地址
-C	#  请求压缩所有数据
-F	#  指定 ssh 指令的配置文件
-f	#  后台执行 ssh 指令
-g	#  允许远程主机连接主机
-i	#  指定身份文件
-l	#  指定连接远程服务器登陆用户名
-N	#  不执行远程指令
-o	#  指定配置选项
-p	#  指定远程服务器的端口
-q	#  静默模式
-X	#  开启 X11 转发功能
-x	#  关闭 X11 转发功能
-y	#  开启信任 X11 转发功能
ssh-keygen

ssh-keygen 命令用于为 ssh 生成、管理和转换认证密钥

#  ssh-keygene 常用参数
-C	#  添加注释
-b	#  指定密钥长度
-e	#  读取openssh 的私钥或公钥文件
-f	#  指定用来保存密钥的文件名
-i	#  读取未加密的 ssh-v2 兼容的私钥/公钥文件,然后在标准输出设备上显示 openssh 见阿荣的私钥/公钥
-l	#  显示公钥文件的指纹数据
-N	#  提供一个新密码
-P	#  提供一个旧密码
-q	#  静默模式
-t	#  指定要创建的密钥类型(RSA、DSA,默认为 RSA)
ssh-cocpy-id

ssh-copy-id 命令用于把本地主机的公钥复制到远程主机的 /root/.ssh/authorized_keys 文件中

ssh-cocpy-id 常用参数
-i	#  指定公钥文件
scp

加密的方式在本地的主机和远程主机之间复制文件

#  scp 常用参数
-1	#  强制使用 ssh 协议版本1
-2	#  强制使用 ssh 协议版本2
-4	#  强制使用 IPV4 地址
-6	#  强制使用 IPV6 地址
-B	#  以批处理模式运行
-C	#  使用压缩
-F	#  指定 ssh 配置文件
-i	#  identity_file 从指定文件中读取传输时使用的密钥文件
-l	#  指定宽带限制
-o	#  指定使用的 ssh 选项
-P	#  指定远程主机的端口号
-p	#  保留文件的最后修改时间,最后访问时间和权限模式
-q	#  不显示复制进度
-r	#  以递归方式复制

五、配置密钥登陆

1、修改配置文件
#  修改服务端配置文件 /etc/ssh/sshd_config
PasswordAuthentication no	#  关闭密码验证
PubkeyAuthentication yes	#  启用密钥验证
RSAAuthentication yes		#  使用 RSA 算法进行安全验证
2、在客户端生成密钥
ssh-keygen
    指定私钥保存的路径及文件名(如不指定则默认为 /root/.ssh/id_rsa)
    密钥密码,最少五个字符(用于密钥连接时候使用,如不输入则可免密登陆)
    确认密码
    确完后自动在密钥文件所在位置创建 .pub 的公钥文件

#  文件简介
id_rsa		#  私钥文件
id_rsa.pub	#  公钥文件
authorized_keys	#  服务端公钥文件
known_hosts	#  确认过公钥指纹的可信服务器列表的文件
config		#  指定不同域名使用哪个密钥的配置文件
3、上传公钥到服务端
ssh-copy-id -i id_rsa.pub root@192.168.1.123	#  将公钥上传到服务器(会自动在服务器 /root/.ssh/ 目录下创建 authorized_keys 文件)

#  如前一行报错则可用 scp 命令拷贝
#  将 .11 主机上的 id_rsa.pub 拷贝到指定目录并更名为 authorized_keys(服务端输入)
scp -P 2222 root@10.1.82.11:/root/.ssh/id_rsa.pub /root/.ssh/authorized_keys

#  或
#  将本地主机上的 id_rsa.pub 文件拷贝到 .11 主机上并更名为 authorized_keys(客户端输入)
scp -P 2222 /root/.ssh/id_rsa.pub root@10.1.82.11:/root/.ssh/authorized_keys 
4、连接

如设置了公钥密码则需输入公钥密码,如没设置公钥密码则可免密登陆

ssh -p 2222 root@192.168.1.123
posted @ 2020-11-02 19:58  Anonymous_1  阅读(241)  评论(0编辑  收藏  举报