当前位置: 首页 > news >正文

ubuntu安装openssh

安 装openssh-server后,就可以通过加密连接远程访问ubuntu,这里推荐使用Putty访问ubuntu。 PuTTY 是一套免费的 SSH / Telnet 程序,它可以连接上支持 SSH Telnet 联机的站台,并且可自动取得对方的系统指纹码 (Fingerprint)。建立联机以后,所有的通讯内容都是以加密的方式传输,因此你再也不用害怕使用 Telnet 在 Internet 或公司的内部网络传输资料时被他人获知内容了!
安装openssh-server :

         sudo apt-get install openssh-server

随后,Ubuntu 会自动下载并 安装 openssh server,并一并解决所有的依赖关系。当您完成这一操作后,您可以找另一台计算机,然后使用一个 SSH 客户端软件(强烈推荐 PuTTy),输入您服务器的 IP 地址。如果一切正常的话,等一会儿就可以连接上了。并且使用现有的用户名和密码应该就可以登录了。

事实上如果没什么特别需求,到这里 OpenSSH Server 就算安装好了。

利用 PuTTy 登录服务器SSH 服务中,所有的内容都是加密传输的,安全性基本有保证。但是如果能使用证书认证的话,安全性将会更上一层楼,而且经过一定的设置,还能实现证书认证自动登录的效果。

首先修改 sshd_config 文件,开启证书认证选项:

sudo vi /etc/ssh/sshd_config

RSAAuthentication yes

PubkeyAuthentication yes

AuthorizedKeysFile %h/.ssh/authorized_keys

修改完成后重新启动 ssh 服务。

下一步我们需要为 SSH 用户建立私钥和公钥。首先要登录到需要建立密钥的账户下,这里注意退出 root 用户,需要的话用 su 命令切换到其它用户下。然后运行:

ssh-keygen

这里,我们将生成的 key 存放在默认目录下即可。建立的过程中会提示输入 passphrase,这相当于给证书加个密码,(这里需要注意输入的密码必须是5位或更多,否则会发生写入密码错误的提示)也是提高安全性的措施,这样 即使证书不小心被人拷走也不怕了。当然如果这个留空的话,后面即可实现 PuTTy 通过证书认证的自动登录。

ssh-keygen 命令会生成两个密钥,首先我们需要将公钥改名留在服务器上:

cd ~/.ssh

mv id_rsa.pub authorized_keys

然后将私钥 id_rsa 从服务器上复制出来,并删除掉服务器上的 id_rsa 文件。

服务器上的设置就做完了,下面的步骤需要在客户端电脑上来做。首先,我们需要将 id_rsa 文件转化为 PuTTy 支持的格式。这里我们需要利用 PuTTyGEN 这个工具:

点击 PuTTyGen 界面中的 Load 按钮,选择 id_rsa 文件,输入 passphrase(如果有的话),然后再点击 Save PrivateKey 按钮,这样 PuTTy 接受的私钥就做好了。

打开 PuTTy,在 Session 中输入服务器的 IP 地址,在 Connection->SSH->Auth 下点击 Browse 按钮,选择刚才生成好的私钥。然后回到 Connection 选项,在 Auto-login username 中输入证书所属的用户名。回到 Session 选项卡,输入个名字点 Save 保存下这个 Session。点击底部的 Open 应该就可以通过证书认证登录到服务器了。如果有 passphrase 的话,登录过程中会要求输入 passphrase,否则将会直接登录到服务器上,非常的方便。

sshd_config文件其他项目说明:

Port 22 # 修改成你想要的登陆端口,如1234

PermitRootLogin no # 禁止root用户登陆

StrictModes yes # 检查密钥的用户和权限是否正确,默认打开的

RSAAuthentication yes # 启用 RSA 认证

PubkeyAuthentication yes # 启用公钥认证

PasswordAuthentication no # 禁止密码认证,默认是打开的

ServerKeyBits 1024 # 修改后变为此状态,将ServerKey强度改为1024比特

PermitEmptyPasswords no # 修改后变为此状态,禁止空密码进行登录

相关文章:

  • 服务器溢出提权攻击的解决办法
  • . NET自动找可写目录
  • 如何绕过防注入
  • 突破ARP防火墙嗅探
  • 如何在php中修补XSS漏洞
  • wordpress 拿webshell
  • 基于php+Mysql的SQL Injection 攻击技术
  • 入侵后完美清理日志的总结
  • Linux命令行下WEP密码破解(通用,也可非BT平台)
  • FOR语句提权中基础语法
  • 打造LINUX系统安全
  • Kivlad--Android上的二进制文件的反编译工具
  • IT 缩略语
  • CDN获取真实IP
  • Dede CMS All Versions SQL
  • [译]CSS 居中(Center)方法大合集
  • 《剑指offer》分解让复杂问题更简单
  • ES6 ...操作符
  • mongodb--安装和初步使用教程
  • PAT A1050
  • PHP的Ev教程三(Periodic watcher)
  • sessionStorage和localStorage
  • 爱情 北京女病人
  • 程序员该如何有效的找工作?
  • 从PHP迁移至Golang - 基础篇
  • 关于Android中设置闹钟的相对比较完善的解决方案
  • 目录与文件属性:编写ls
  • 前端性能优化--懒加载和预加载
  • 前言-如何学习区块链
  • 深入 Nginx 之配置篇
  • 物联网链路协议
  • MPAndroidChart 教程:Y轴 YAxis
  • 阿里云ACE认证之理解CDN技术
  • #1014 : Trie树
  • #define 用法
  • $(document).ready(function(){}), $().ready(function(){})和$(function(){})三者区别
  • $HTTP_POST_VARS['']和$_POST['']的区别
  • (4.10~4.16)
  • (C#)一个最简单的链表类
  • (备忘)Java Map 遍历
  • (附源码)spring boot智能服药提醒app 毕业设计 102151
  • (附源码)基于ssm的模具配件账单管理系统 毕业设计 081848
  • (附源码)计算机毕业设计大学生兼职系统
  • (南京观海微电子)——COF介绍
  • (十三)Java springcloud B2B2C o2o多用户商城 springcloud架构 - SSO单点登录之OAuth2.0 根据token获取用户信息(4)...
  • (转)linux下的时间函数使用
  • (转)程序员疫苗:代码注入
  • (转)四层和七层负载均衡的区别
  • (轉)JSON.stringify 语法实例讲解
  • .NET Core 实现 Redis 批量查询指定格式的Key
  • .NET Standard / dotnet-core / net472 —— .NET 究竟应该如何大小写?
  • .net 简单实现MD5
  • .Net 知识杂记
  • .NET/C# 避免调试器不小心提前计算本应延迟计算的值
  • .Net环境下的缓存技术介绍