ssh

Posted 武云医生

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ssh相关的知识,希望对你有一定的参考价值。

(一)ssh简介:

(1)ssh:为secure shell的缩写,ssh为建立在应用层和传输层基础上的安全协议



(2)ssh的服务:

①ssh端口:22


②进程:sshd


③安装服务:openssh


④服务端:/usr/sbin/sshd,配置文件/etc/ssh/sshd_config


⑤客户端:/usr/bin/ssh,配置文件/etc/ssh/ssh_config





(3)ssh加密原理:

使用的是非对称加密算法,不需要知道双方的私有秘钥,但都可以使用自己的私有秘钥打开这个文件,保证了私有秘钥的不泄露,把服务器方的公钥下载到本地,以后发送的任何数据都拿这个公钥去加密到了服务器端之后,服务器就会拿私钥解开。


\'ssh_ssh\'





(4)ssh配置文件:

17 #Port 22 //监听的端口

19 #ListenAddress 0.0.0.0 //监听的ip

22 HostKey /etc/ssh/ssh_host_rsa_key //私钥存放的位置

31 #SyslogFacility AUTH //记录ssh登录的情况

33 #LogLevel INFO //日志等级

38 #PermitRootLogin yes //将yes改为no,不允许root登录

43 #PubkeyAuthentication yes //是否使用公钥验证

47 AuthorizedKeysFile .ssh/authorized_keys //公钥保存的位置

63 #PasswordAuthentication yes //允许使用密码验证登录,可以改为no,可以用钥匙队来登录

64 #PermitEmptyPasswords no //不允许空密码登录

79 GSSAPIAuthentication yes/把yes改为no //客户端修改为这样,就可以在没有dns的情况下,快速输入密码,不用等待





(5)ssh命令:

①scp root@:172.18.152.51:/root/test /root 下载//把远程主机的test文件复制到本地的/root目录



②scp -r /root/test root@172.18.152.51:/root 上传//将本地的test复制到远程的目录上去



③sftp命令:

1、sftp root@172.18.152.51 //登录命令

ls :查看登录设备的文件

lls:查看本机的内容

lcd:切换本机的目录

get:下载

put:上传


2、sftp> get a /root/ //将远程目录上的a文件下载到本机的/root目录





(3)秘钥登录:{免密码登录}


\'ssh_ssh_02\'



①环境:

172.18.152.50 服务端

172.18.152.51 客户端;在客户端生成私钥,把客户端的公钥转给服务端,服务端把客户端的公钥放在指定的位置



②步骤1:

ssh-keygen -t rsa //在客户端执行会生成一个公钥和私钥: 下面的三步直接回车

\'ssh_ssh_03\'



③scp id_rsa.pub root@172.18.152.50:/root //把公钥传递到服务器上去:



④让那个用户登录,就放在那个用户的目录下

mkdir .ssh

cat id_rsa.pub >> ./ssh/authorized_keys //采用追加的方式可以让多个用户免输密码登录

chmod g-r,o-r authorized_keys //只有root可以读


⑤服务端的操作:

vim /etc/ssh/sshd_config

43 PubkeyAuthentication yes .ssh/authorized_keys

65 PasswordAuthentication no


systemctl restart named



⑥客户端测试:

ssh 172.18.152.50 ;也可以将客户端的公钥下载到本地,用windows的软件打开的时候将这个key选择为key登录,就可以实现windows下用key登录





(4)ssh故障处理:

①环境:

之前ssh过某一个主机,并且客户端上保存了key,但是这台主机更新了地址,另一台主机使用了这个ip地址,ssh登录的时候出现很多@@@吗,处理办法是使用ssh更新秘钥就行



②处理方法:

ssh-keygen -R 172.18.152.51






以上是关于ssh的主要内容,如果未能解决你的问题,请参考以下文章

PyCharm SSH 隧道通过本地 ssh 配置 (~/.ssh/config)

salt-ssh与ssh的区别

ssh 命令怎么用?

ssh(不是openssh) 做无密码登陆,怎么每次ssh 登陆还是要输入密码呀?

万字详解SSH(SSH登录原理+SSH配置+模拟实现SSH免密登录)

SSH服务审计工具ssh-audit