首页 > 代码库 > ssh学习小记

ssh学习小记

ssh 为Secure SHell 的缩写。OpenSSH: ssh协议的开源实现。

SSH协议版本

v1: 基于CRC-32做MAC,不安全;man-in-middle
v2:双方主机协议选择安全的MAC方式
基于DH算法做密钥交换,基于RSA或DSA实现身份认证

OpenSSH实现的客户端,服务端

C/S架构
C: ssh, scp, sftp
Windows客户端:
xshell, putty, securecrt, sshsecureshellclient
S: sshd

ssh客户端

客户端组件:
ssh, 配置文件:/etc/ssh/ssh_config
Host PATTERN
StrictHostKeyChecking no 首次登录不显示检查提示
命令登录格式:ssh [user@]host [COMMAND]
-p port:远程服务器监听的端口
-b:指定连接的源IP
-v:调试模式
-C:压缩方式
-X: 支持x11转发
-Y:支持信任x11转发
ForwardX11Trusted yes
-t:  强制伪tty分配
ssh -t remoteserver1 ssh remoteserver24040
允许实现对远程系统经验证地加密安全访问
当用户远程连接ssh服务器时,会复制ssh服务器
/etc/ssh/ssh_host*key.pub(centos7.0默认是ssh_host_ecdsa_key.pub)文件中的公钥到客户机的~./ssh/know_hosts中。下次连接时,会比较两处是否有不同。

 

基于key认证

 (1) 在客户端生成密钥对
ssh-keygen -t rsa [-P ‘‘] [-f “/root/.ssh/id_rsa"]
#ssh-keygen –t rsa –P ‘’  -f “/root/.ssh/id_rsa”
 (2) 把公钥文件传输至远程服务器对应用户的家目录
ssh-copy-id [-i [identity_file]] [user@]host

相当于将公钥内容追加在远程服务器~/.ssh/authorized_keys 文件中,若无则创建,且权限为600 

 (3) 测试
 (4) 转化为openssh兼容格式(适合SecureCRT,Xshell不需要转化格式),并复制到需登录主机上相应文件authorized_keys中,注意权限必须为600
ssh-keygen -i -f Identity.pub >> .ssh/authorized_keys
 (5)重设私钥口令:#ssh-keygen –p 
基于key认证
验证代理(authentication agent)保密解密后的密钥
? 这样口令就只需要输入一次
? 在GNOME中,代理被自动提供
? 否则运行ssh-agent bash

关掉代理:ssh-agent -k 

钥匙通过命令添加给代理
ssh-add  #添加密语 ,默认文件为/root/.ssh/id_rsa 等标准文件名格式密钥

ssh-add -L #查看以代理的私钥对应的公钥 文件

ssh-add -d #删除以添加的密语

 

 

ssh学习小记