SSH的使用和概要
SSH服务(TCP端口号22):安全的命令解释器
为客 户机提供安全的Shell 环境,用于远程管理
SSH基于公钥加密(非对称加密)技术: 数据加密传输; 客户端和服务器的身份验证;
公钥 和 私钥 是成对生成的,这两个密钥互不相同,两个密钥可以互相加密和解密;
不能根据一个密钥而推算出另外一个密钥;
公钥对外公开,私钥只有私钥的持有人才知道;
www.zhishiwu.com
数据加密 和 数字签名 (根据功能不同分的)
发送方使用接受方的公钥加密数据;
接受方使用自己的私钥解密数据;
数据加密保证了所发送数据的机密性;
数字签名:(数字签名保证数据完整性、身份验证和不可否认)
发送方:对原始数据执行HASH算法得到摘要值;发送方用自己的私钥加密摘要值;
将加密的摘要值与原始数据发送给接受方;
接受方:用发送方公钥解密摘要值,同时对收到的原始数据同样执行HASH产生另一种摘要值;
将解密的摘要值与产生的摘要值对比;
www.zhishiwu.com
OpenSSH:
服务端主程序:/usr/sbin/sshd
客户端主程序:/usr/bin/ssh
服务端配置文件:/etc/ssh/sshd_config (重启shhd服务生效)
客户端配置文件:/etc/ssh/ssh_config
SSH登录使用的用户名:服务器中的本地系统用户的帐号名;
SSH登录的用户验证方式
密码验证:使用服务器中系统帐号对应的密码;(PasswordAuthentcation yes)
密钥对验证:使用客户端中生成的公钥、私钥;(PubkeyAuthentication yes AuthorizedKeyFile .ssh/authorized_keys)
使用ssh命令远程登录方法:
1.ssh 用户名@服务器地址
2.ssh -l 用户名 服务器地址 (较少用)
3.ssh 服务器地址(服务器正在使用哪个用户就以哪个用户登录)
另外一些常用SSH相关的命令:
passwd #修改当前用户密码
groupadd SSH #添加组
useradd -g SSH -s /bin/'bash' -d /home/user1 user1 #添加用户
passwd user1 #为用户user1创建密码
userdel user1 #删除用户user1
groupdel SSH #删除组SSH
停用帐号,VIM编辑密码文件,在用户名后添加 ":*" 。 www.zhishiwu.com
vim /etc/shadow
1
2
service sshd restart # 重启sshd
ps -aux | grep sshd #查看是否运行成功
客户端密钥存放位置
~.ssh目录下
服务器端的密钥存放位置
/etc/ssh/ssh_host_*
known_hosts 存放访问过的服务器的公钥
authorized_keys 存放需要验证的客户机的公钥
.ssh文件夹和下面的文件权限的组和其它人不能有w权限
ssh访问很慢的原因和解决办法
原因:访问服务器的时候会把服务器的ip地址反向解析为域名,如果无法解析就会导致登陆时很慢
下面三种方法都可以解决这个问题
1、清空/etc/resolv.conf文件中nameserver记录
2、在客户机的/etc/hosts文件中添加服务器域名的解析记录
3、修改客户机的/etc/ssh/ssh_config文件中:GSSAPIAuthentication no
问题二:若是公钥文件出了问题,会导致无法认证,解决方法,就是把文件删除
rm -rf /root/.ssh/know_hosts
service sshd restart
配置案例: www.zhishiwu.com
密码方式:
service sshd restart 重启服务
netstat -anpt | grep sshd 查看端口
登录主机:ssh root@192.168.100.127
ssh直接在远程主机上新建用户: ssh root@10.10.10.1 adduser txy
在密码认证的时候要看:服务器端中的 /etc/ssh/sshd_config 中PasswordAuthentcation yes,,才能用密码认证
第一次访问服务器时不用输入yes
ssh -o StrictHostKeyChecking=no root@10.10.10.1
/etc/ssh/ssh_config客户端文件
StrictHostKeyChecking no 第一次访问服务器时不用输入yes
秘钥方式 www.zhishiwu.com
这里的例子是一个普通用户登录到服务器中的普通用户,root用户登录就更加简单,不用创建文件,不用修改权限,生成秘钥的地方的root下
复制scp的地方也在root下:
服务器端
查看文件:修改 /etc/ssh/sshd_config中 PubkeyAuthentication yes
创建文件: mkdir /home/xiaohua/.ssh
修改文件权限: chomd -R 600 /home/xiaohu/.ssh 在这个文件中别的用户不能有w权限
客户端:
useradd xiaolue
su - xiaolue
ssh-keygen
scp /home/xiaolue/.ssh/id_rsa.pub root@192.168.100.127:/home/xiaohua/.ssh/authorized_keys
访问控制:
/etc/hosts.allow 优先于下面的
/etc/hosts.deny
首先检查hosts.allow文件,若找到相匹配的策略,则允许访问;否则继续检查hosts.deny文件,若找到了
相匹配的策略,则拒绝访问;如果两个文件中都没有相匹配的策略,则允许访问; www.zhishiwu.com
vim /etc/hosts.allow
sshd:210.13.218.*:allow 允许登录的ip ,allow可以省略
它能控制服务的范围:1,受super daemon (xinetd) 服务管理
2,受支持libwrap.so模块的服务
查看具体服务是否控制:ldd /usr/sbin/sshd | grep wrap
idd $(which 服务) | grep wrap
修改后要重启服务:service xined restart