一、SSH服务
1. 安装SSH
(1)查看是否已经安装过ssh服务
rpm -qa |grep ssh
(2)进行安装
sudo apt-get install openssh-server
-
Ubuntu缺省安装了openssh-client,如果没有输入:
sudo apt-get install openssh-client
2. 运行SSH服务
(1)开启SSH
/etc/init.d/ssh start
(2)验证启动成功
ps -e | grep sshd
(3)查看ssh服务状态
service ssh status
3. 理解配置文件
ssh-server配置文件位于/etc/ssh/sshd_config
-
Port 22
:SSH默认服务端口为22 -
KeyRegenerationInterval 3600
:服务器密钥一小时重新生成一次 -
ServerKeyBits 1024
:服务器密钥长度1024 -
LogingGraceTime 120
:限定用户必须在120秒内成功进行认证。 -
PermitRootLogin yes
:允许超级管理员远程登录 -
PasswordAuthentication yes
:支持密码认证 - 可以使用RSA公钥认证的方式登录Linux:
RSAAuthentication yes
PubkeyAuthentication yes
-
AllowTcpForwarding yes
:开启端口转发 -
X11Forwarding yes
:开启X11转发
4. 远程接入测试
-
在主机或其他终端中使用ssh服务。实践中使用windows中的putty软件接入。
-
输入用户名和密码接入虚拟机:
二、身份验证
1. 使用用户名密码实现身份认证
-
输入用户名和密码接入虚拟机:
2. 使用证书实现身份认证
(1)生成密钥对
运行puttygen.exe 选择Generate生成密钥对(生成过程中需要在当前程序活动窗口中滑动鼠标以生成随机密钥)。
-
生成密钥对如下图所示。
点击save private 将私钥.ppk 文件保存到本地。并复制公钥内容。
(2)将公钥发送到虚拟机
- 使用PUTTY连接主机,获得root权限。
-
vim ~/.ssh/authorized_keys
:打开要修改的文件将公钥内容粘贴进去,保存并退出。
(3)修改配置文件
vim /etc/ssh/sshd_ config
-
修改部分(一般情况下不需要更改):
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys 保存退出,断开连接。
(4)使用私钥连接
-
再次使用PUTTY进行连接时,选择“连接”->“SSH”->“认证”,选择保存在本地的私钥文件。
-
在“连接”->“数据”中输入自动登录的用户名
-
公钥认证连接成功
三、文件传输和程序运行
1. 使用WinSCP客户端连接并进行文件传输
-
输入Linux的ip地址、用户名和密码,SSH服务默认端口号为22:
-
Login之后会提示是否缓存密钥:
-
登录成功后就可以进行文件传输:
2. 用Windows中的PUTTY运行XWindows程序
开启Xming 程序,在PUTTY中勾选允许X11映射:
-
以root账号登陆,编辑SSH服务器的配置文件/etc/ssh/sshd_config
-
开启TCP转发和X11转发:
AllowTcpForwarding yes
X11Forwarding yes -
如果登陆用户名与存放公钥的文件夹的拥有者不同,则需要更改:
StrictModes no
- StrictModes yes必须保证存放公钥的文件夹的拥有与登陆用户名是相同的。 -
如果机器禁止ROOT远程登录,还需要更改:
PermitRootLogin yes
-
-
在桌面上打开Xming 的快捷方式,在目标的命令行中加上-ac 的参数:
-
打开PUTTY,在终端登陆Linux。将输出映射到本机:
export DISPLAY = 本机IP:0.0
- 0.0 表示Xming 的display number为0,如果display number设置成其他值则需保持一致 -
在PUTTY中输入命令即可打开相应的程序
参考资料
参考资料1:rpm常用命令及rpm参数介绍
参考资料2:ssh 配置讲解大全
参考资料3:Linux基础实践