1.什么是ssh?
SSH(Secure Shell)是一种用于远程登录和安全文件传输的网络协议。SSH服务是在计算机上运行的服务程序,它允许用户通过网络安全地远程访问计算机并执行各种操作。
以下是关于SSH服务的一些重要信息:
-
远程登录:SSH服务允许用户通过SSH客户端(如OpenSSH、PuTTY等)远程登录到SSH服务器所在的计算机。远程登录可以在命令行界面上执行命令和操作。
-
安全传输:SSH服务提供了加密和安全的数据传输通道,以保护远程会话中的数据的机密性和完整性。这意味着通过SSH连接传输的数据是加密的,无法被中间人窃取或篡改。
-
密钥身份验证:SSH服务支持密钥身份验证,这是一种更安全的身份验证方法。用户可以生成公钥和私钥对,并将公钥添加到SSH服务器上,从而实现无需密码的身份验证。
-
文件传输:SSH服务还提供了安全的文件传输功能,可以通过SSH协议进行文件上传和下载。这对于远程复制文件、备份数据等操作非常有用。
在大多数Linux和Unix系统中,SSH服务通常使用OpenSSH来实现。为了使用SSH服务,你需要在SSH服务器上安装并启动SSH服务。具体操作可以参考相关操作系统的文档和指南。
2.安装ssh
a.设置root密码:sudo passwd root(如果设置好了可以跳过)
b.首先打开我们的Ubuntu并且键入以下命令:
1 安装服务程序:sudo apt install openssh-server
2 安装客户端程序:sudo apt install openssh-client
如果中途出现(Y/N)键入Y回车即可
3.配置ssh
a.安装结束后在/ect/ssh/ssh_config中修改配置文件:
b.进入之后键入i进入编辑模式,此时左下角出现--INSERT--
c.将我们的需要修改的内容复制好,然后右键鼠标粘贴在空白位置即可
LoginGraceTime 2m
PermitRootLogin yes
PubkeyAuthentication yes
PasswordAuthentication yes
ChallengeResponseAuthentication no
UsePAM yes
X11Forwarding yes
PrintMotd no
AcceptEnv LANG LC_*
Subsystem sftp /usr/lib/openssh/sftp-server
解释如下
LoginGraceTime 2m:在登录成功之前,允许的登录时长限制。在这个示例中,设置为2分钟。
PermitRootLogin yes:允许root用户通过SSH进行远程登录。请注意,为了安全起见,建议将此选项设置为 "no",以防止未经授权的访问。
PubkeyAuthentication yes:启用公钥身份验证。允许用户使用密钥对进行身份验证,而不是使用密码。
PasswordAuthentication yes:启用密码身份验证。允许用户使用密码进行身份验证。
ChallengeResponseAuthentication no:禁用挑战-响应身份验证。挑战-响应身份验证通常与PAM模块一起使用,允许使用额外的身份验证方法(如OTP、二次因素等)。
UsePAM yes:启用PAM(Pluggable Authentication Modules)身份验证。PAM是用于身份验证和帐户管理的模块化系统。
X11Forwarding yes:启用X11转发。允许在SSH会话中转发X11图形窗口。
PrintMotd no:禁用在登录时打印MOTD(Message of the Day)消息。MOTD通常包含系统信息和公告。
AcceptEnv LANG LC_*:允许SSH客户端传递语言环境变量(如LANG、LC_ALL等)到SSH会话。
Subsystem sftp /usr/lib/openssh/sftp-server:配置用于SFTP(SSH文件传输协议)的子系统路径。
按下esc退出编辑模式;然后按住shift+':'进入命令模式,键入w! 即可保存;最后按ctrl+z退出文件
4. 启动服务
键入:sudo service ssh start
出现红框所示表示启动成功
5.设置开机自启动
a.建立一个bat文件
创建一个txt文件,将命令:
C:\Windows\System32\bash.exe -c "sudo service ssh start"写入,然后把尾椎改成.bat
b.将.bat文件放入文件夹:
C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp
c.配置sudo免密码:
在etc文件目录下输入 vim sudoers
键入i 进入编辑模式输入:
username ALL=(ALL) NOPASSWD: /usr/sbin/service ssh start;
username填入你的用户名
shift+: 进入命令模式;按esc推出编辑模式;键入w!(强制保存);最后键入ctrl+z返回:
开机自动弹出命令框并且免密码启动ssh服务
到此我们的ssh就部署成功了!