ssh

于今腐草无萤火,终古垂杨有暮鸦。这篇文章主要讲述ssh相关的知识,希望能为你提供帮助。
(一)ssh简介:
(1)ssh:为secureshell的缩写,ssh为建立在应用层和传输层基础上的安全协议




(2)ssh的服务:
①ssh端口:22


②进程:sshd


③安装服务:openssh


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


【ssh】⑤客户端:/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命令:
①scproot@:172.18.152.51:/root/test/root下载//把远程主机的test文件复制到本地的/root目录




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




③sftp命令:
1、sftproot@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.pubroot@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


systemctlrestartnamed




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








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




②处理方法:
ssh-keygen-R 172.18.152.51











    推荐阅读