ssh服务器简介
SSH即Security Shell的意思,他可以将连线的封包进行加密技术,之后进行传输,因此相当的安全
SSH协定,在预设的状态下,本身就提供了两个服务器功能:
• 一个就是类似telnet的远程连接使用shell的服务器,也就是俗称的SSH
• 另一个就是类似FTP服务的sftp-server,它提供更安全的FTP服务
加密形式:公钥私钥(不对称加密)
系统默认就安装了ssh服务端软件(如果系统安装的是mini版的,想要安装SSH的话,它的软件包的名字为:openssh-server)
systemctl restart sshd.service
ssh服务器监听的端口为TCP协议的22号端口。telnet端口为23号
ssh服务器配置文件简介
SSH的配置文件存放在:/etc/ssh/目录中,在此目录中存放了两个基于的配置文件: sshd_config与ssh_config前一个文件是SSH服务端的配置文件,后一个为SSH客户端的配置。另外在这个目录中还存放有ssh_host开头的文件,这些文件均为密钥文件。加.pub是公钥,不加.pub的是私钥
解密流程:
1.A要向B发送信息,A和B都要产生一对秘钥用于加密
2.A的私钥保密,A的公钥告诉B;B的私钥保密,B的公钥告诉A
3.A要给B发送信息时,A用B的公钥加密信息,因为A知道B的公钥
4.A将这个消息发给B(已经用B的公钥加密消息)
5.B收到这个消息后,B用自己的私钥解密A的消息。其他所有收到这个报文的人都
无法解密,因为只有B才有B的私钥
PS:公钥只负责对信息进行加密,私钥只负责对信息进行解密,最重要的是,私钥是
无法从公钥推导出来的
ssh客户的应用
• ssh:安全shell进程
• ssh [ -X ] 用户@主机名
• ssh 用户@主机名 远端指令
• scp:基于ssh的安全远端拷贝文件与目录
• scp –r 文件/目录 用户@主机名:远端目录
• 拷贝本地文件到远端目录
• scp –r 用户@主机名:远端目录[/文件] 本地目录
• 拷贝远端《文件/目录 -r》到本地目录
• sftp:基于ssh的安全ftp传送
• sftp 用户@主机名
SSH连接实操
一个虚拟机的sheet右键,管理,克隆,克隆出一个虚拟机
原虚拟机为1,克隆机为2
ifconfig 两边都看看有没有IP地址,没有的话要设置
电源键,network里设置,如果是DHCP自动获取的话将它关一下再开一下,就自动获取到了。如果不能自动获取就手动设置IP地址,掩码以及网关
现在 1 的IP地址为192.168.169.128,2 的IP地址为192.168.169.129
1为客户端,2为服务器
互相ping一下看看能不能通
1上:
①ssh [root@192.168.169.129]
检验对方的指纹是不是1要连的,如果没问题就yes。这个只有第一次的时候会提示,以后就不用了。除非对方改指纹
②输入2的root的密码,显示last login就说明成功连入了
③ifconfig发现IP地址为2的IP地址
④exit就可以退出
★但是现在退出再ssh登入的时候发现还要密码,如果我不想再输入密码了就↓👇
ssh客户端通过密钥访问SSH服务器(设置以后登入不需密码)
在默认的情况下,客户端在访问SSH服务器的时候需要通过密钥与密码认证,任何一种没有通过都无法访问。但在某些时候,如果每次都输入用户名与密码将会带来管理上的麻烦,如果想直接通过密钥访问而不需要提供密码,则可以在SSH客户端创建密钥并将公钥导出给SSH服务器,这样客户端就不需要提供密码来验证证了
步骤:
• 客户端创建密钥:ssh-keygen
• 将客户端的公钥拷贝给SSH服务器
• 客户端:ssh-copy-id root@server_IP
接上面的程序:
1里(作为客户端):
⑤ssh-keygen
一直敲回车,敲到不能敲为止
⑥ssh-copy-id [root@192.168.169.129]
⑦输入2(服务器端)的root用户的密码
⑧ssh [root@192.168.169.129]
时就自动登入了,不再需要密码
但是这时从2登入1时还是需要密码,想不需要密码需要在2中也进行以上设置才行
1里:
ssh root@192.168.169.129 reboot
远程将2重启
ssh root@192.168.169.129 poweroff
远程将2关机
但是远程操作首先得保证你有执行这个命令的权限。如果没有的话操作不会生效
涉及到系统权限的只有root用户能做,其他用户做不了