1.远程登入系统有常用两个服务telnet和ssh,都属于C/S架构
telnet: 远程登录协议,端口为23/tcp
特点:明文传输,不加密
ssh: Secure SHell,端口为22/tcp有v1,v2两个版本
特点:主机加密认证
用户认证过程加密
数据传输过程加密
sshv1:由于受到中间人攻击等安全隐患,现在用的不多
sshv2:相对sshv1,很安全,其认证过程有两种:基于口令认证及基于密钥认证
2.Linux系统程序是openSSH
服务器端:sshd, 配置文件/etc/ssh/sshd_config
客户端:ssh, 配置文件/etc/ssh/ssh_config
ssh-keygen: 密钥生成器
ssh-copy-id: 将公钥传输至远程服务器
scp:跨主机安全复制工具
ssh命令使用方法如下:登入远程主机工具
ssh 用户名@[主机名或]IP地址
ssh -l 用户名 [主机名或]IP地址
ssh 用户名@[主机名或]IP地址 ‘命令‘
scp命令使用方法如cp命令一样,即跨主机安全复制工具
scp 源文件路径 目标文件路径
scp 用户名@[远程主机名或]远程IP地址:文件路径 目标文件路径
scp 本地文件路径 用户名@[远程主机名或]远程IP地址:文件路径
ssh-keygen: 密钥生成器
-t rsa加密类型
~/.ssh/id_rsa 生成的私钥
~/.ssh/id_rsa.pub 生成的公钥
-f KEY文件路径
-P ‘‘: 指定加密私钥的密码
ssh-copy-id使用方法:将公钥传输至远程服务器
ssh-copy-id -i ~/.ssh/id_rsa.pub 用户名@[远程主机名或]远程IP地址
-i ~/.ssh/id_rsa.pub 生成的公钥
将生成的公钥保存到远程主机某用户的家目录下.ssh/authorized_keys或.ssh/authorized_keys2文件
3.基于主机认证:第一次远程ssh [email protected]主机,询问是否连接?输入yes后,
会自动生成.ssh/know_hosts主机认证文件,本次成功连接后,下次再远程连接不再询问
4.基于口令的认证:ssh [email protected] 必须输入密码才能登入
5.基于密钥的认证,也就是无需输入密码,直接登入至远程主机
5.1;第一种实现方法:本主机IP为1.1.1.18,远程主机IP为1.1.1.13
ssh-keygen -t rsa 在家目录下生成公私钥
scp .ssh/id_rsa.pub [email protected]:~ 将公钥传至远程主机家目录下:如下图 mkdir .ssh 在远程1.1.1.13主机上创建.ssh目录
chmod 700 .ssh 将目录权限改成755
cat id_rsa.pub >> .ssh/authorized_keys 将刚复制过来公钥追加至.ssh/authorized_keys文件
ssh [email protected] 登入远程主机无需输入密码直接进入哈,如下图
5.2.第二种实现方法:
rm -rf .ssh 删除本地主机公私钥文件,删除远程主机私钥文件
ssh-keygen -f .ssh/id_rsa -P ‘‘ -次生成公私钥文件
ssh-copy-id .ssh/id_rsa.pub [email protected]
将公钥传至远程主机家目录下,会自动创建.ssh/id_rsa.pub文件,比scp方便
ssh [email protected] 无需密码,直接登入远程主机,如下图
注意:基于密钥认证前提必须将Selinux关闭,否则还会提示输入密码