实验目的

从myVM1(本地主机)上登录myVM2(远程主机)。采用密钥方式,不输入密码。

测试环境

主机:window7 sp1 64位 专业版

虚拟机:VMware workstation 12 player

虚拟机操作系统: ubuntu 16.4

请确保你的ubuntu虚拟机能够连接Internet。VMware建议使用NAT方式联网。

  • myVM1(本地主机) 用户 lion IP:192.168.145.128
  • myVM2(远程主机) 用户 novak IP:192.168.145.129

如何修改linux计算机名参考如下链接见

http://www.cnblogs.com/lion-zheng/p/7528774.html

在vm2上的操作

目标是从VM1上远程登陆到VM2上。因此,VM2需要运行SSH服务器。

步骤1 检查ssh-server有没有启动

ps -e | grep ssh

如果只有ssh-agent,而没有sshd,说明ssh-server没有启动

#### 步骤2 安装OpenSSH服务器
安装前可以通过linux内的浏览器是否能够打开网页来验证能否上网。虚拟机VMware的网络可以设置为NAT模式。

sudo apt-get install openssh-server

再次检查ssh-server是否启动,看到sshd说明服务已经启动

ps -e | grep ssh

##在vm1上的操作

步骤0 尝试密码登录 (option)

即使没有建立密钥,也应该可以从vm1上通过用户名+密码的方式登录到vm2

可以使用

ssh novak@192.168.145.129

ssh 192.168.145.129

来尝试登陆。能够登录证明两个虚拟机(计算机)之间的连接正常,并且远程主机(myvm2)的SSH服务运行正常。

步骤1 使用ssh-keygen指令建立密钥

ssh-keygen -t rsa

以下是执行指令的截屏,在/home/lion/.ssh/ 目录下生成id_rsa和id_rsa.pub两个文件。注意.ssh是一个隐藏文件夹,在目录中CTRL+H可以显示隐藏文件。

lion@myvm1:~$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/lion/.ssh/id_rsa):
Created directory '/home/lion/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/lion/.ssh/id_rsa.
Your public key has been saved in /home/lion/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:I80d9ilw5GZyNZq2KAZfQHh70o97KonVDQ1hZs7+SbE lion@myvm1
The key's randomart image is:
+---[RSA 2048]----+
| oo =.. o |
| . .B.o + . |
| .. o*o& |
| oo=+%.* . |
| =+S=E o |
| ..oo+oo |
| o . .o |
| . o . . |
| ..o |
+----[SHA256]-----+
lion@myvm1:~$

#### 步骤2 执行ssh-copy-id
该指令将vm1生成的密钥,写入到vm2的 /home/novak/.ssh/authorized_keys 文件中。
(novak是我的用户名,你的可能会不同)

ssh-copy-id -i ~/.ssh/id_rsa.pub novak@192.168.145.129

novak是我的myvm2的用户名,192.168.145.129是我的myvm2的地址,相应的替换为你的用户名和地址。

"-i ~/.ssh/id_rsa.pub" 是表示home文件夹下的路径。也可以使用完整路径:

ssh-copy-id -i /home/lion/.ssh/id_rsa.pub novak@192.168.145.129

指令执行截图

lion@myvm1:~$ ssh-copy-id -i ~/.ssh/id_rsa.pub novak@192.168.145.129
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/home/lion/.ssh/id_rsa.pub"
The authenticity of host '192.168.145.129 (192.168.145.129)' can't be established.
ECDSA key fingerprint is SHA256:rOFueqsS2qpZZr0KoPO9sbezts+CIcwrVtmsX1WoLEw.
Are you sure you want to continue connecting (yes/no)? yes
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
novak@192.168.145.129's password: Number of key(s) added: 1 Now try logging into the machine, with: "ssh 'novak@192.168.145.129'"
and check to make sure that only the key(s) you wanted were added.

步骤3 从myvm1(本地主机)登录到myvm2(远程主机)

ssh novak@192.168.145.129

登录过程已经不需要输入密码了。请注意,这个密钥只对novak这个账户生效。

使用SSH密钥方式登录ubuntu Linux,指令(ssh-keygen 和 ssh-copy-id)的更多相关文章

  1. Linux ssh密钥自动登录(转)

    在开发中,经常需要从一台主机ssh登陆到另一台主机去,每次都需要输一次login/Password,很繁琐.使用密钥登陆就可以不用输入用户名和密码了 实现从主机A免密码登陆到主机B,需要以下几个步骤: ...

  2. Linux ssh密钥自动登录 专题

    在开发中,经常需要从一台主机ssh登陆到另一台主机去,每次都需要输一次login/Password,很繁琐.使用密钥登陆就可以不用输入用户名和密码了 实现从主机A免密码登陆到主机B(即把主机A的pub ...

  3. 配置SecureCRT以SSH公钥方式登录服务器

    为了更方便管理服务器,CRT一个功能非常方便.那就是可以使用私钥认证通过后直接连接,而且对于密码保护比较安全一点. 首先配置ssh Port 32812Protocol 2UseDNS noPubke ...

  4. [整理]配置SSH密钥自动登录远程服务器

    原理: 公钥私钥匹配通过验证,允许访问服务器. 简单步骤: 1.在本地创建一对密钥 2.将公钥传到需要访问的服务器上 3.将公钥放入服务器的authorized_keys,确保访问时能通过验证 4.本 ...

  5. 不能ssh连接ubuntu linux 服务器 secureCRT不能ssh连接服务器 不能远程ssh连接虚拟机的ubuntu linux

    我是用的是secureCRT,远程连接我的虚拟机里面的ubuntu 直接报错,连接不上 1,先分别在windows上ipconfig和ubuntu上ifconfig下 互ping一下,是可以ping通 ...

  6. 记无法用被动方式登录远程linux主机的原因

    [环境]: linux主机:华为企业云 ftp服务端:vsftpd 客户端:ftp命令行工具,安卓端ES文件浏览器 [现象]: 在ES文件浏览器中,使用被动方式没法连接,使用主动方式可以连接,但是没法 ...

  7. SSH免密码登录远程linux服务器

    Linux下实现SSH无密码验证登陆 ssh配置 主机A:10.0.5.199 主机B:10.0.5.198 需要配置主机A无密码登录主机A,主机B 先确保所有主机的防火墙处于关闭状态. 在主机A上执 ...

  8. SSH密钥登录让Linux VPS/服务器更安全

    查看 /var/log 登录日志文件,突然发现服务器被人扫描端口在进行暴力攻击 平常登录服务器,都是使用用户密码登录,看来这样的做法并不安全,不得不关闭密码登录了. 总结了一个putty使用密钥自动登 ...

  9. linux(十)配置ssh免密登录实现

    知道ssh的朋友应该知道它是用来干什么的,如果你不知道什么是ssh远程登录的话,可以去看一下我的上一篇博客,关于linux的网络基础的知识.备注:ssh是用于远端登入.执行ssh指令开启终端机阶段作业 ...

随机推荐

  1. PHP常用设计模式汇总

    装饰模式: <?php abstract class Tile { abstract function getWealthFactor(); } class Plains extends Til ...

  2. 一个简单的基于MINI2440开发板的启动代码

    1. S3C2440大概的启动流程(NAND启动): ①设置CPU为SVC模式 ②关闭看门狗 ③屏蔽中断 ④关闭MMU ⑤初始化时钟 ⑥初始化内存(SDRAM) ⑦初始化栈指针(SP, R13) ⑧初 ...

  3. 笔记_简明Python教程_Byte_of_Python

    1. 局部变量.全局变量 局部变量: x = 50 def func(x): x = 2 print('Change local x to',x) func(x) print('x is still' ...

  4. 研磨设计模式学习笔记3--适配器模式Adapter

    需求:制作一个日志管理系统,分为2个版本,第一版制作一个将日志存在本地文件的管理系统,第二版制作一个存储在数据库的管理系统,同时,第二版兼容第一版. 优点:可以复用现有功能,无需重新开发. 一.第一版 ...

  5. JS时间控件 moment.js用法

    参考http://momentjs.cn/ 下载 moment.js moment.min.js 12.4k moment+多语言支持.js moment+多语言支持.min.js 45.4k 安装 ...

  6. Hadoop Intro - Configure 01

    hadoop配置文件详解.安装及相关操作   一.      Hadoop伪分布配置 1. 在conf/hadoop-env.sh文件中增加:export JAVA_HOME=/home/Java/j ...

  7. maya 安装失败

    AUTODESK系列软件着实令人头疼,安装失败之后不能完全卸载!!!(比如maya,cad,3dsmax等).有时手动删除注册表重装之后还是会出现各种问题,每个版本的C++Runtime和.NET f ...

  8. 牛客网Java刷题知识点之代码块(局部代码快、构造代码块、静态代码块)

    不多说,直接上干货! 代码块包括局部代码快.构造代码块.静态代码块. 代码块,就是一段独立的代码空间. 1.局部代码快 对局部变量的生命周期进行控制. 2.构造代码块 对所有对象进行初始化. 3.静态 ...

  9. maven实战迷你版记录

    1.  ~/.m2 文件 默认情况下,该文件夹下放置了 Maven 本地 仓库.m2/repository.所有的 Maven 构件(artifact)都被存储到该仓库中,以方便重用. 默认情况下,~ ...

  10. C# 操作 Excel(.xls和.xlsx)文件

    C#创建Excel(.xls和.xlsx)文件的三种方法 .NET 使用NPOI导入导出标准Excel C# 使用NPOI 实现Excel的简单导入导出 NET使用NPOI组件将数据导出Excel-通 ...