SSH协议是远程连接的安全性协议,该协议可以有效防止远程管理过程中的信息泄漏,是西安传输数据加密,能够防止DNS和IP欺骗,传输数据压缩,加快传输速度。
安全验证方法有口令验证和密钥验证两种实现手段,该协议在Linux和Mac系统中内置,Windows则需要手动安装。
连接方法
使用ssh 用户名@IP地址
的方式进行远程连接,示例如下图:
连接命令后可加指令,获得返回结果,完成后自动断开连接;-p端口号
通过指定端口远程连接。
远程文件管理
通过scp工具
实现,scp -r递归复制 -p保留文件属性 本地目录 用户名@IP:目的地址
将本地文件复制到远程主机上,scp -r递归复制 -p保留文件属性 用户名@IP:目的地址 本地目录
将远程主机文件复制到本地。
ssh自带了sftp功能,建立连接后可通过get
和put
方法传输文件,示例如下图:
配置文件
ssh协议的配置文件存储在/etc/ssh/sshd_config
文件中,其中大部分设置默认为注释状态,需要手动配置,一些常用设置如下:
Port 22 默认的sshd服务端口
ListenAddress 0.0.0.0 设定sshd服务器监听的IP地址
Protocol 2 SSH协议的版本号
HostKey /etc/ssh/ssh_host_key SSH协议版本为1时,DES私钥存放的位置
HostKey /etc/ssh/ssh_host_rsa_key SSH协议版本为2时,RSA私钥存放的位置
HostKey /etc/ssh/ssh_host_dsa_key SSH协议版本为2时,DSA私钥存放的位置
PermitRootLogin yes 设定是否允许root管理员直接登录
StrictModes yes 当远程用户的私钥改变时直接拒绝连接
MaxAuthTries 6 最大密码尝试次数
MaxSessions 10 最大终端数
PasswordAuthentication yes 是否允许密码验证
PermitEmptyPasswords no 是否允许空密码登录(很不安全)
PubkeyAuthentication 是否允许密钥登录
密钥验证
基于非对称加密理论,采取公钥加密私钥解密的方式进行验证,我们首先需要生成密钥对,通过ssh-keygen
命令即可实现,然后使用ssh-copy-id 目的地址
命令,将公钥发送给远程主机,
然后将远程主机配置文件中允许密钥登录设置为yes
,并将密码登录设置为no
,然后使用主机直接连接,可见如下提示:
并没有输入密码而直接登录成果。
我们使用的远程管理工具mobaxterm
中同样可以设置密钥登录,在工具中的密钥生成器可以生成密钥,如下图:
该密钥生成借助鼠标移动作为随机参数,增大安全性,但安装不要傻等,得没事动动鼠标。
随后就获得了密钥对:
随后手动在.ssh
目录下新建authorized_keys
文件,并将密钥复制到其中,然后在会话的高级工具中选择使用私钥进行连接
总结
ssh是用于安全远程连接的协议,借助该协议可以实现远程操作和文件传输功能,安全验证有口令和密钥两种手段。