Linux SSH配置及.config应用,SSH常用命令

发布时间:2018-12-18 16:31:33编辑:丝画阁阅读(1268)

SSHSecure Shell的缩写,SSH 为建立在应用层基础上的安全协议。SSH 是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。SSH客户端适用于多种平台。几乎所有UNIX平台—包括HP-UX、Linux、AIX、Solaris、Digital、UNIX、Irix以及其他平台,都可运行SSH。

Linux SSH配置及.config应用,SSH常用命令


SSH加密的方式主要有两种:

  1. 对称加密(也称为秘钥加密),(基于口令的安全验证)
  2. 非对称加密(也称公钥加密),(基于密匙的安全验证)

i.对称加密,指加密解密使用同一套秘钥。

Linux SSH配置及.config应用,SSH常用命令


1.客户端发起ssh请求,服务器会把自己的公钥发送给用户 
2.用户会根据服务器发来的公钥对密码进行加密 
3.加密后的信息回传给服务器,服务器用自己的私钥解密, 如果密码正确,则用户登录成功.

ii.非对称加密有两个密钥:“公钥”“私钥”

两个密钥的特性:公钥加密后的密文,只能通过对应的私钥进行解密。而通过公钥推理出私钥的可能性微乎其微。

Linux SSH配置及.config应用,SSH常用命令


1.Client端用户向server发出请求
2.远程Server收到Client端用户TopGun的登录请求,Server把自己的公钥发给用户。
3.Client使用这个公钥,将密码进行加密。
4.Client将加密的密码发送给Server端。
5.远程Server用自己的私钥,解密登录密码,然后验证其合法性。
6.若验证结果,给Client相应的响应。

默认端口号:22

基于tcp协议

OpenSSH: ssh协议的开源实现,Linux默认安装。

/etc/ssh/ssh_config 客户端配置文件

/etc/ssh/sshd_config 服务端配置文件

----------------------------------------------

openssh详解

openssh-server安装文件如下:

/etc/pam.d/ssh-keycat

/etc/pam.d/sshd

/etc/rc.d/init.d/sshd

/etc/ssh/sshd_config

/etc/sysconfig/sshd

/usr/libexec/openssh/sftp-server

/usr/libexec/openssh/ssh-keycat

/usr/sbin/.sshd.hmac

/usr/sbin/sshd

openssh-clients安装文件如下:

/etc/ssh/ssh_config

/usr/bin/.ssh.hmac

/usr/bin/scp

/usr/bin/sftp

/usr/bin/slogin

/usr/bin/ssh

/usr/bin/ssh-add

/usr/bin/ssh-agent

/usr/bin/ssh-copy-id

/usr/bin/ssh-keyscan

/usr/libexec/openssh/ssh-pkcs11-helper

openssh-5.3p1-123.el6_9.x86_64安装文件如下:

/etc/ssh

/etc/ssh/moduli

/usr/bin/ssh-keygen

/usr/libexec/openssh

/usr/libexec/openssh/ssh-keysign

常用命令:

ssh ,ssh-add ,ssh-agent ,ssh-copy-id ,ssh-keygen ,ssh-keyscan,scp,sftp

Linux SSH配置及.config应用,SSH常用命令


ssh命令是openssh套件中的客户端连接工具,可以给予ssh加密协议实现安全的远程登录服务器。

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

指令:要在远程ssh服务器上执行的指令。

ssh-add命令是把专用密钥添加到ssh-agent的高速缓存中。该命令位置在/usr/bin/ssh-add。

语法

ssh-add [-cDdLlXx] [-t life] [file ...]

ssh-add -s pkcs11

ssh-add -e pkcs11

选项

-D:删除ssh-agent中的所有密钥.

-d:从ssh-agent中的删除密钥

-e pkcs11:删除PKCS#11共享库pkcs1提供的钥匙。

-s pkcs11:添加PKCS#11共享库pkcs1提供的钥匙。

-L:显示ssh-agent中的公钥

-l:显示ssh-agent中的密钥

-t life:对加载的密钥设置超时时间,超时ssh-agent将自动卸载密钥

-X:对ssh-agent进行解锁

-x:对ssh-agent进行加锁

实例

1、把专用密钥添加到 ssh-agent 的高速缓存中:

ssh-add ~/.ssh/id_dsa

2、从ssh-agent中删除密钥:

ssh-add -d ~/.ssh/id_xxx.pub

3、查看ssh-agent中的密钥:

ssh-add -l

ssh-agent命令是一种控制用来保存公钥身份验证所使用的私钥的程序。ssh-agent在X会话或登录会话之初启动,所有其他窗口或程序则以客户端程序的身份启动并加入到ssh-agent程序中。通过使用环境变量,可定位代理并在登录到其他使用ssh机器上时使用代理自动进行身份验证。

其实ssh-agent就是一个密钥管理器,运行ssh-agent以后,使用ssh-add将私钥交给ssh-agent保管,其他程序需要身份验证的时候可以将验证申请交给ssh-agent来完成整个认证过程。

-a bind_address:bind the agent to the UNIX-domain socket bind_address.

-c:生成C-shell风格的命令输出。

-d:调试模式。

-k:把ssh-agent进程杀掉。

-s:生成Bourne shell 风格的命令输出。

-t life:设置默认值添加到代理人的身份最大寿命。

ssh-copy-id命令可以把本地主机的公钥复制到远程主机的authorized_keys文件上,ssh-copy-id命令也会给远程主机的用户主目录(home)和~/.ssh, 和~/.ssh/authorized_keys设置合适的权限。

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

选项

-i:指定公钥文件

实例

1、把本地的ssh公钥文件安装到远程主机对应的账户下:

ssh-copy-id user@server

ssh-copy-id -i ~/.ssh/id_rsa.pub user@server

ssh-keygen命令用于为“ssh”生成、管理和转换认证密钥,它支持RSA和DSA两种认证密钥。

ssh-keygen(选项)

选项

-b:指定密钥长度;

-e:读取openssh的私钥或者公钥文件;

-C:添加注释;

-f:指定用来保存密钥的文件名;

-i:读取未加密的ssh-v2兼容的私钥/公钥文件,然后在标准输出设备上显示openssh兼容的私钥/公钥;

-l:显示公钥文件的指纹数据;

-N:提供一个新密语;

-P:提供(旧)密语;

-q:静默模式;

-t:指定要创建的密钥类型。

ssh-keyscan命令是一个收集大量主机公钥的使用工具。

ssh-keyscan(选项)(参数)

选项

-4:强制使用IPv4地址;

-6:强制使用IPv6地址;

-f:从指定文件中读取“地址列表/名字列表”;

-p:指定连接远程主机的端口;

-T:指定连接尝试的超时时间;

-t:指定要创建的密钥类型;

-v:信息模式,打印调试信息。

参数

主机列表:指定要收集公钥的主机列表。

scp是 secure copy的缩写, scp是linux系统下基于ssh登陆进行安全的远程文件拷贝命令。linux的scp命令可以在linux服务器之间复制文件和目录。

scp在夸机器复制的时候为了提高数据的安全性,使用了ssh连接和加密方式,如果机器之间配置了ssh免密码登录,那在使用scp的时候密码都不用输入。

当你服务器硬盘变为只读 read only system时,用scp可以帮你把文件移出来。

另外,scp还非常不占资源,不会提高多少系统负荷,在这一点上,rsync就远远不及它了。虽然 rsync比scp会快一点,

但当小文件众多的情况下,rsync会导致硬盘I/O非常高,而scp基本不影响系统正常使用。

scp [参数] [原路径] [目标路径]

scp [-1246BCpqrv] [-c cipher] [-F ssh_config] [-i identity_file]

[-l limit] [-o ssh_option] [-P port] [-S program]

[[user@]host1:]file1 [...] [[user@]host2:]file2

-B: 使用批处理模式(传输过程中不询问传输口令或短语)

-C: 允许压缩。(将-C标志传递给ssh,从而打开压缩功能)

-p:保留原文件的修改时间,访问时间和访问权限。

-q: 不显示传输进度条。

-r: 递归复制整个目录。

-v:详细方式显示输出。scp和ssh(1)会显示出整个过程的调试信息。这些信息用于调试连接,验证和配置问题。

-c cipher: 以cipher将数据传输进行加密,这个选项将直接传递给ssh。

-F ssh_config: 指定一个替代的ssh配置文件,此参数直接传递给ssh。

-i identity_file: 从指定文件中读取传输时使用的密钥文件,此参数直接传递给ssh。

-l limit: 限定用户所能使用的带宽,以Kbit/s为单位。

-o ssh_option: 如果习惯于使用ssh_config(5)中的参数传递方式,

-P port:注意是大写的P, port是指定数据传输用到的端口号

-S program: 指定加密传输时所使用的程序。此程序必须能够理解ssh(1)的选项。

sftp命令是一款交互式的文件传输程序,命令的运行和使用方式与ftp命令相似,但是,sftp命令对传输的所有信息使用ssh加密,它还支持公钥认证和压缩等功能。

sftp(选项)(参数)

选项

-B:指定传输文件时缓冲区的大小;

-l:使用ssh协议版本1;

-b:指定批处理文件;

-C:使用压缩;

-o:指定ssh选项;

-F:指定ssh配置文件;

-R:指定一次可以容忍多少请求数;

-v:升高日志等级。

ssh登录方式及设置:

密码登录:

ssh user@192.168.x.x -p 10022

输入密码......

密钥登录:

1.单密钥登录

在server上:

ssh-keygen -b 4096 -C "注释",生成id_rsa,id_rsa.pub。

mv id_rsa.pub authorized_keys

chmod 700 ~/.ssh

chmod 600 ~/.ssh/authorized_keys

将id_rsa保存在本地,并在ssh软件设置,即可免密码连接。

2.多密钥登录

ssh-agent bash 或 ssh-agent $SHELL 开启一个ssh子shell

ssh-add ~/.ssh/id_dsa 将密钥加入缓存

ssh user@192.168.x.x -p 10022 不要密码即可登录。

.ssh/config应用:

将公钥保存在server,如上。

在client上:

在用户home目录.ssh目录下创建config文件

chmod 700 ~/.ssh

chmod 600 .ssh/config

在config文件中加入:

Host server0

Hostname 192.168.1.70

Port 22

User matrix

IdentityFile ~/.ssh/node0_rsa

ssh server0 =ssh matrix@192.168.1.70 -p 22

关键字