ssh服务器搭建
1.基础简介
- 将真实机与虚拟机进行连接
- 连接方式:NAT,桥接,LAN网段连接…
- 在真实机安装了VMware或,就会产生虚拟网卡:vmnet1,vmnet8
- 虚拟机的网络设置
- 网卡的表示方式:ens33
- 查看ip地址:ifconfig
- 相关命令:ifup ens33 ifdown ens33
- 地址从哪里来的? 通过DHCP获取的?
- 如果虚拟机要获取真实网络的地址?
- 桥接模式获取
2.服务器搭建,密码验证登录方式
-
查看ssh服务是否启动:systemctl status sshd
查看服务状态:systemctl status sshd 开启服务:systemctl start sshd 重启服务:systemctl restart sshd
-
修改配置文件:修改前先备份
# vim /etc/ssh/sshd_config
LoginGraceTime 2m :登录验证时间 permitRootLogin no :禁止root用户登录 MaxAuthTries 3 :最大重试次数 MaxSessions 10 :最大连接数 PermitEmptyPaswords no :禁止空密码用户登录 ......
# systemctl restart sshd :重启服务
-
ssh登录方式:
ssh 192.168.88.130 ssh 用户名@192.168.88.130 例:ssh stu1@192.168.88.130
-
限制用户登录:
-
如果只允许或禁止某些用户登录时,可以使用AllowUsers或DenyUsers配置,两者用法类似(不能同时使用)
-
例:只允许stu1和stu2用户登录,其中stu2用户仅能从IP地址为 192.168.10.100的主机远程登录
# vim /etc/ssh/sshd_config 添加: AllowUsers stu1 stu2@192.168.10.100 :多个用户用空格隔开
# systemctl restart sshd :重启服务
-
3. 密钥对验证方式
-
要求提供相匹配的密钥信息才能通过验证。通常先在客户中创建一对密钥文件(公钥、私钥),然后将公钥文件放到服务器中的指定位置。远程登录时,系统将使用公钥、私钥进行加密/解密关联验证,大增强了远程管理的安全性。公钥(Public Key)与私钥(Privtae Key)的关系如下:
-
公钥与私钥是成对生成,这两个密钥互不相同,可以互相加密与解密。
不能根据一个密钥来推算出另一个密钥。
公钥对外公开,私钥只有私钥的持有人才知道。
公钥与私钥要配对使用,如果用公钥对数据进行加密,只有用相对就的私钥才能解密;如果用私钥对数据进行加密,那么只有用对应的公钥才能解密。
当密码验证与密钥对验证都启用时,服务器将优先使用密钥对验证。对于安全性要求较高的服务器,建议将密码验证方式禁用, 只允许启用密钥对验证方式;若没有特殊要求,则两种方式都可启用。
其中,公钥库文件用来保存各客户机上传的公钥文本,以便与客户机本地的私钥文件进行匹配。
-
-
开启密钥对验证方式:
# vim /etc/ssh/sshd_config 修改: PasswordAuthentication yes :启用密码验证 PubkeyAuthentication yes :启用密钥对验证方式 AuthorizedKeysFile .ssh/authorized_keys //指定公钥库数据文件
# systemctl restart sshd :重启服务
例:
以student用户远程登录到主机192.168.75.158 [root@localhost ~]# ssh student@192.168.75.158 Are you sure you want to continue connecting (yes/no)? yes //接受密钥 student@192.168.75.158's password: //输入密码 当用户第一次登录SSH服务器时,必须接受服务器发来的RSA密钥(根据提示输入“yes”)后才能继续验证。接收的密钥信息将保存到~/.ssh/known_hosts文件中。密码验证成功以后,就登录到目标服务器的命令行环境中了,就好像把客户机的显示器、键盘连接到服务器一样。 如果sshd服务器使用了非默认的端口号(如2345),则在登录时必须通过“-p”选项指定端口号。 举例:以student用户远程登录到主机192.168.75.158的2345端口 [root@localhost ~]#ssh -p 2345 student@192.168.75.158
-
构建密钥对验证ssh:
-
在客户端创建密钥对那个用户登录,密钥对就默认生成在那个用户的目录下
student@localhost log]$ ssh-keygen -t rsa Generating public/private rsa key pair. Enter file in which to save the key (/home/student/.ssh/id_rsa): //指定私钥位置 Enter passphrase (empty for no passphrase): //设置私钥短语 Enter same passphrase again: //确认所设置的短语
-
修改公钥的名称:
# cd /home/student/.ssh # vim id_rsa.put authorized_keys # ll :查看authorized_keys权限是否为644(rw-r--r--)
-
修改为密钥对验证:
PasswordAuthentication yes 密码验证 PubkeyAuthentication yes 密钥对验证 AuthorizedKeysFile .ssh/authorized_keys
-
linux客户端使用密钥对验证登录:
[student@localhost ~]$ssh stu1@192.168.75.158
-
也可以把密钥下载到windows,用xshell登录验证:
-
4.putty生成密钥验证
- 在windows系统中使用putty实现密钥对登录服务器
-
首先要用PuTTYgen 生成密钥对
-
点击Save private key按钮,选择一个存放文件的路径并定义名称,点击“保存”。
-
复制公钥到Linux服务器
[root@aminglinux ~]# mkdir /root/.ssh //创建目录 [root@aminglinux ~]# chmod 700 /root/.ssh //更改这个目录的权限 [root@aminglinux ~]# vim /root/.ssh/authorized_keys //把公钥内容粘贴到这个文件里并保存。
-
关闭selinux
[root@aminglinux ~]# setenforce 0 //暂时关闭SELinux,下次重启还会再开启。 查看selinux安全机制:getenforce Enforcing(1)保护 Permissive(0)关闭
-
设置putty通过密钥登录
详情请转到这个页面查看