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加密原理:
使用的是非对称加密算法,不需要知道双方的私有秘钥,但都可以使用自己的私有秘钥打开这个文件,保证了私有秘钥的不泄露,把服务器方的公钥下载到本地,以后发送的任何数据都拿这个公钥去加密到了服务器端之后,服务器就会拿私钥解开。
(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)秘钥登录:{免密码登录}
①环境:
172.18.152.50 服务端
172.18.152.51 客户端;在客户端生成私钥,把客户端的公钥转给服务端,服务端把客户端的公钥放在指定的位置
②步骤1:
ssh-keygen -t rsa //在客户端执行会生成一个公钥和私钥: 下面的三步直接回车
③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)
ssh(不是openssh) 做无密码登陆,怎么每次ssh 登陆还是要输入密码呀?