linux 远程ssh(Linux服务器配置-SSH远程登录管理)
linux 远程ssh(Linux服务器配置-SSH远程登录管理)-2 强制ssh只支持SSH-2协议。-1 强制ssh只支持SSH-1协议。功能:用于登录到远程主机和在远程主机上执行命令的程序。语法:ssh [options] [user@]hostname主要选项:
上文:Linux服务器配置-SSH远程登录管理(一)
一、 在配置和使用中用到的主要命令
1、 ssh 命令
英文描述:OpenSSH SSH client (remote login program)
功能:用于登录到远程主机和在远程主机上执行命令的程序。
语法:ssh [options] [user@]hostname
主要选项:
-1 强制ssh只支持SSH-1协议。
-2 强制ssh只支持SSH-2协议。
-4 强制ssh只使用IPv4地址。
-6 强制ssh只使用IPv6地址。
-l login_name 指定要在远程计算机上登录的用户。
-p port 指定要连接到远程主机上的端口。默认端口为22。
2、 scp命令
英文描述:secure copy (remote file copy program)
功能:在网络上的主机之间复制文件。
语法:scp [options] [[user@]host1:]file1 ...[[user@]host2:]file2
主要选项:
-1 强制scp只支持SSH-1协议。
-2 强制scp只支持SSH-2协议。
-4 强制scp只使用IPv4地址。
-6 强制scp只使用IPv6地址。
-C: 允许压缩。(将-C标志传递给ssh,从而打开压缩功能)
-p: 保留原文件的修改时间,访问时间和访问权限。
-l limit 限制使用带宽,以Kbit/s指定。
-P port 指定要连接到远程主机上的端口。注意,这个选项用大写的“P”来表示。默认端口为22 。
-r 递归复制整个目录。
-v 详细显示信息。
3、 ssh-keygen命令
英文描述:authentication key generation management and conversion
功能:生成、管理和转换认证密钥。
语法:ssh-keygen [options]
主要选项:
-B 显示指定的公钥/私钥文件的 bubblebabble 摘要。
-b bits 指定要创建的密钥长度。RSA密钥的最小是1024位,默认值是2048位。
DSA密钥必须恰好是FIPS 186-2所指定的1024位。
ECDSA密钥,-b标志确定为:256、384或521位。
Ed25519键的长度是固定的,忽略-b标志。
-C comment 提供一个新注释。
-F hostname 在 known_hosts 文件中搜索指定的 hostname ,并列出所有的匹配项。这个选项主要用于查找散列过的主机名/IP地址,还可以和 -H 选项联用打印找到的公钥的散列值。
-f filename 指定密钥文件名。
-g 在使用 -r 打印指纹资源记录的时候使用通用的 DNS 格式。
-H 对 known_hosts 文件进行散列计算。这将把文件中的所有主机名/IP地址替换为相应的散列值。原来文件的内容将会添加一个".old"后缀后保存。这些散列值只能被 ssh 和sshd 使用。这个选项不会修改已经经过散列的主机名/IP地址,因此可以在部分公钥已经散列过的文件上安全使用。
-N new_passphrase 提供一个新的密码。
-P passphrase 提供旧密码。
-p 要求改变某私钥文件的密码而不重建私钥。程序将提示输入私钥文件名、原来的密码、以及两次输入新密码。
-R hostname 从 known_hosts 文件中删除所有属于 hostname 的密钥。这个选项主要用于删除经过散列的主机(参见 -H 选项)的密钥。
-r hostname 打印名为 hostname 的公钥文件的 SSHFP 指纹资源记录。
-t type 指定要创建密钥对的类型。
SSH-1协议版本:rsa1。
SSH-2协议版本:rsa 、dsa、ecdsa、ed25519。
-v 详细显示信息。
-y 读取OpenSSH专有格式的公钥文件,并OpenSSH公钥显示在标准输出上。
二、通过密码登录认证配置
配置实例如下图所示:
1. 安装SSH服务
yum -y install openssh openssh-server
注:SSH服务在系统安装完毕后,就已经安装完成,不需要单独安装。
2. 修改SSH服务端配置文件
- 在CentOS6系统中
cp -p /etc/ssh/sshd_config /etc/ssh/sshd_config.bak #备份原文件
vim /etc/ssh/sshd_config #编辑配置文件
Protocol 2
SyslogFacility AUTHPRIV
PermitRootLogin no
PasswordAuthentication yes
ChallengeResponseAuthentication no
GSSAPIAuthentication yes
GSSAPICleanupCredentials yes
UsePAM yes
AcceptEnv LANG LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_MESSAGES
AcceptEnv LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE LC_MEASUREMENT
AcceptEnv LC_IDENTIFICATION LC_ALL LANGUAGE
AcceptEnv XMODIFIERS
X11Forwarding yes
Subsystem sftp /usr/libexec/openssh/sftp-server
注:如果不允许root用户登录,可将PermitRootLogin 项设为no。(默认允许root用户登录)
- 在RHEL7系统中
cp -p /etc/ssh/sshd_config /etc/ssh/sshd_config.bak #备份原文件
vim /etc/ssh/sshd_config #编辑配置文件
HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_ecdsa_key
HostKey /etc/ssh/ssh_host_ed25519_key
SyslogFacility AUTHPRIV
PermitRootLogin no
PasswordAuthentication yes
ChallengeResponseAuthentication no
GSSAPIAuthentication yes
GSSAPICleanupCredentials yes
UsePAM yes
X11Forwarding yes
AcceptEnv LANG LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_MESSAGES
AcceptEnv LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE
LC_MEASUREMENT
AcceptEnv LC_IDENTIFICATION LC_ALL LANGUAGE
AcceptEnv XMODIFIERS
Subsystem sftp /usr/libexec/openssh/sftp-server
注:如果不允许root用户登录,可将PermitRootLogin 项设为no。(默认允许root用户登录)
3. 重启SSH服务
- 在CentOS6系统中
service sshd restart
- 在RHEL7系统中
systemctl restart sshd
4. 从客户端远程登录系统
- 在Linux客户端上用ssh命令连接远程主机
安装SSH客户端软件
yum -y install openssh-clients
注:SSH服务在系统安装完毕后,就已经安装完成,不需要单独安装。
修改SSH客户端端配置文件
Host *
GSSAPIAuthentication yes
ForwardX11Trusted yes
SendEnv LANG LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_MESSAGES
SendEnv LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE LC_MEASUREMENT
SendEnv LC_IDENTIFICATION LC_ALL LANGUAGE
SendEnv XMODIFIERS
注:客户端配置文件一般不需要修改,除非有特定需求。如果提示输入密码项,时间过长,请将GSSAPIAuthentication改为no。
登录远程主机
在客户端上使用如下命令:
ssh snowfox@192.168.1.90 或 ssh -l snowfox 192.168.1.90
由于客户端是第一次连接远程主机,系统要下载RSA公钥,这里输入yes。再次登录直接输入密码就可以了。
从上图可以看到由centos7-study主机登录到了centos6-test主机上。
退出远程主机
执行exit命令。
· 在Windows系统上使用SSH工具连接Linux主机
PuTTY工具下载地址:https://www.chiark.greenend.org.uk/~sgtatham/putty/
SecureCRT工具下载地址:https://www.vandyke.com/
Xshell工具下载地址:https://www.netsarang.com/zh/
以上三个软件都是常用的SSH工具,可以根据喜好自行下载使用。下面以Xshell为例。
进入Xshell官网,进行下载,【所有下载】->【家庭/学校免费】。
填写【姓名】和【邮件地址】,勾选【两者】,点击【下载】。
单击下载后,提示下载链接邮件已经发到您刚刚填写的邮箱,查看邮件并下载软件。
安装完成后,运行Xshell软件。
选择【文件】菜单->【新建】,开启【新建会话属性】页。
在【名称】中输入要创建的这个会话的名称。
在【协议】中选择SSH,即用SSH进行远程链接。
在【主机】中输入需要远程管理主机的IP地址。
在【端口号】中输入远程管理主机SSH服务的监听端口号,默认为22。
以上填写完成后,选择【用户身份认证】。
在【方法】中选择Password,即用密码验证方式进行连接认证。
在【用户名】中输入远程主机的用户名。(必须是远程主机中已存在的用户)。
在【密码】中输入远程主机的用户密码。
以上填写完成后,选择【终端】。
在【编码】中选择Unicode(UTF-8)编码,以便正确显示中文字符。
以上选择完成后,选择【键盘】。
在【BACKSPACE键序列】中选择ASCⅡ127(Ctrl ?)(l),设置退格键。
以上选择完成后,单击【连接】按钮,登录远程主机。
通过工具栏上的【配色方案】和【字体】按钮,选择适合的方案及字体。
至此已经通过Xshell工具软件,连接到了Linux远程主机。
以上是我在学习Linux系统中整理的一些学习要点,肯定会有不对的地方,希望各位大侠给与指正,我们共同学习!谢谢!
Linux服务器配置-SSH远程登录管理(三)
实例说明怎样配置SSH基于密钥对认证登录。