目录
OpenSSH
SSH是一种安全通道协议,主要用来实现字符界面的远程登录,远程命令执行,远程复制等功能。SSH协议对通信双方的数据传输进行了加密处理,其中包括用户登录时输入的用户口令等。
SSH协议默认监听端口:TCP协议22号端口
http://www.openssh.com
rpm -qa openssh*
openssh-clients-*
openssh-*
openssh-servver*
/usr/sbin/sshd #sshd服务端主程序
/etc/ssh/sshd_config #服务端配置文件(修改之前一定要先备份)
/etc/ssh/ssh_config #客户端配置文件(一般不需要改动)
-
服务端配置
-
服务端配置文件:
/etc/ssh/sshd_config
-
服务端端口(默认22号端口)
Prot 22
-
服务监听的地址(默认监听所有地址)
ListenAddress 0.0.0.0
-
允许尝试链接的次数,默认6次
MaxAuthTries 6
-
允许最多链接数,默认为10
Maxsession 10
-
是否开启基于RSA密钥认证
RSAAuthentication yes
-
是否开启基于密钥认证
PubkeyAuthentication yes
-
如果开启,把客户端公钥放到.ssh/authorized_keys文件中(默认关闭)
AuthorizedKeysFile .ssh/authorized_keys
-
是否允许基于口令的的认证链接,默认允许
PasswordAuthentication yes
-
是否允许空密码登录,默认为yes,启用为no,(建议修改)
PermitEmptyPasswords no
-
是否域名解析,建议改为no提高相应速度
UseDNS yes
#systemctl restart sshd
-
-
SSH服务登录验证方式
-
密码验证:
对服务器中本地系统用户的登录名称,密码进行认证,使用这种方式最为简便。
-
密钥对验证:
要求提供相匹配的密钥信息才能通过验证
vim //etc/ssh/sshd_config
#PubkeyAuthentication yes #启用密钥对认证
#AuthorizedKeyFile .ssh/authorized_keys #公钥文件位置
#PasswordAuthentication yes #启用密码验证
-
-
SSH客户端命令
-
远程链接服务器
ssh 用户名@主机 IP -p 端口
当第一次登录SSH服务器时,必须接受服务器发来的ECDSA密钥(根据提示输入“yes”)后继续验证;如果远程接受了一个主机的链接请求,这个主机的公钥信息就会保存在家目录下的.ssh/known_hosts文件中
-
不登陆此用户,用此用户的身份执行此命令
ssh 用户名@IP ‘要执行的命令’
-
客户端推送文件到服务端
scp 文件名 服务端用户@服务器ip:/推送服务器文件所选位置
-
-
SSH密钥验证
- 首先在SSH客户端创建密钥对
- 客户端将创建的公钥文件上传到SSH服务端
- 服务端将公钥信息导入用户的公钥数据库文件
- 客户端连接服务器端用户测试
-
创建秘钥对,实现主机A登陆主机B不需要输入密码,直接登陆
-
先创建密钥对
ssh-keygen -t rsa/dsa(指定秘钥类型),默认公钥在家目录/.ssh/id_rsa.pub 里,私钥在家目录/.ssh/id_rsa里
-
然后复制公钥到远程主机的家目录下的.ssh/authorized_keys文件(
ssh-copy-id -i .ssh/id_rsa.pub -p 65022 root@主机B的IP(远程直接自动复制到远程PC的authorized_keys这个文件中)
-
3、使用测试
-
总结:在主机A上创建密钥对,一个公钥(.pub);一个私钥.以公钥为准,如果想不需要输入密码连接到B服务器上.就把公钥拷贝到B服务器上,然后就可以连接这台服务器了;新生成的密钥对文件中, id_ecdsa是私钥文件,默认为600,对于私钥文件必须妥善保管,不能泄露给他人。id_ecdsa.pub 是公钥文件,用来提供给SSH服务器。
-
连接过程:
创建密钥对的这个机器(主机A)会拿自己私钥和你拷贝过去的公钥(主机B)做配对,如果配对成功即可不需要输入密码就可连接主机B.否则登陆失败
-
-
Windows XShell密钥连接主机