Mac OS利用ssh访问ubuntu虚拟机及云端操作
1、桥接模式
将该虚拟机的网口设置成桥接模式(Bridged Adapter),以确保主机可以ping通虚拟机:

2、安装ssh
在ubuntu虚拟机上安装ssh server:
sudo apt-get install openssh-server
安装结束后,确认本机ssh服务是否打开,输入
ps -e | grep ssh
如果看到sshd说明ssh服务已经打开了,如果没有sshd,可以输入以下命令开启ssh服务:
sudo /etc/init.d/ssh start
3、IP地址
找到ubuntu的IP地址,即可以通过在terminal输入:
ifconfig
会出现下面的东西:

找到拥有inet的那一行,后面的地址即为该虚拟机的IP地址。这里可以看到,该虚拟机的IP地址为10.66.182.88
4、连接
在主机上同样安装ssh。安装好后为了连接虚拟机,可以进行如下操作:
wubijiadeMacBook-Pro:~ wooka$ ssh wu@10.66.182.88
The authenticity of host '10.66.182.88 (10.66.182.88)' can't be established.
ECDSA key fingerprint is SHA256:xxx.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '10.66.182.88' (ECDSA) to the list of known hosts.
wu@10.66.182.88's password:
Welcome to Ubuntu 14.04.5 LTS (GNU/Linux 4.4.0-31-generic x86_64)
* Documentation: https://help.ubuntu.com/
System information as of Thu Oct 25 22:23:38 HKT 2018
System load: 0.0 Processes: 109
Usage of /: 17.3% of 8.50GB Users logged in: 1
Memory usage: 6% IP address for eth0: 10.66.182.88
Swap usage: 0%
Graph this data and manage this system at:
https://landscape.canonical.com/
New release '16.04.5 LTS' available.
Run 'do-release-upgrade' to upgrade to it.
Last login: Thu Oct 25 22:23:38 2018 from localhost
wu@ubuntu:~$ ls
这里ssh wu@10.66.182.88,wu为虚拟机的用户名。
至此可以直接从主机访问虚拟机的文件了。通过输入exit可退出访问。
wu@ubuntu:~$ exit
logout
Connection to 10.66.182.88 closed.
5、免密配置
然而,麻烦的是,每次主机访问虚拟机时都要输入密码。如何进行免密操作?
为主机和虚拟机共同建立一个共享的密码。
即,可输入ssh-keygen,产生一个public/private密码对。
wubijiadeMacBook-Pro:~ wooka$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/wooka/.ssh/id_rsa): y
# 下面一行代表可否用另一个密码代替之前需要输入的密码,为了方便,可以省略直接回车。
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in y.
Your public key has been saved in y.pub.
The key fingerprint is:
SHA256:xxx
wooka@wubijiadeMacBook-Pro.local
The key's randomart image is:
+---[RSA 2048]----+
|.o . o.. .o |
|. + o..... o |
|o..o .o.o.+ |
|=o..+Eo+oo . + |
|o+.oooooS = . |
|..o.. .o . o o |
| o o. . o o |
|. . .o . o |
| . .+ . |
+----[SHA256]-----+
现在,我们将pubilc key推送到虚拟机上,即
$ ssh-copy-id wu@10.66.182.88
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/Users/wooka/.ssh/id_rsa.pub"
/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
wu@10.66.182.88's password:
Number of key(s) added: 1
Now try logging into the machine, with: "ssh 'wu@10.66.182.88'"
and check to make sure that only the key(s) you wanted were added.
现在,你控制ubuntu虚拟机的时候,就不需要输入密码了哦!
6、文件云端运行
假如我在主机端 (如 Macbook) 上写代码. 在我的主目录下写好了一个 Python 脚本 test.py,但我想把该脚本用 ssh 远程推送到旁边空闲的 Linux 去运算。
比如这个 Python 脚本是这样的:
import platform
a = 0
for i in range(999):
a += 1
print("Finish job, result = %i" %a)
print("This is", platform.system())
如果我要在虚拟机上运行的话,可以这样:
wubijiadeMacBook-Pro:~ wooka$ ssh wu@10.66.182.88 python3 < ~/test.py
Finish job, result = 999
This is Linux
可以看到,文件被推送到了linux上运行了。command中的<表示将右边的文件送入左边的python3中
7、文件云端传输
之前只是文件传送到虚拟机上运行,但是现在我要将文件传送到虚拟机里怎么办呢?比如说我要运行一个py文件,但是该py文件依赖于另一个py文件。这样的话,我必须要把两个文件都放在虚拟机下才能运行。
比如文件 a.py:
# This is b.py
def inner_func():
print("This is the function in b")
还有一个文件需要调用a.py才能运行:
# This is a.py
from b import inner_func
inner_func()
答案是,在本地主机上输入scp(secure copy),加密传输复制~/{a,b}.py,就可将我的主目录里的两个文件复制到虚拟机的temp的目录中。
wubijiadeMacBook-Pro:~ wooka$ scp ~/{a,b}.py wu@10.66.182.88:~/temp
a.py 100% 53 65.4KB/s 00:00
b.py 100% 69 89.5KB/s 00:00
接下来,执行虚拟机上被传送的文件。这时候,相当于在ssh的时候发送一条指令去执行a.py,这条指令用" "框起来,说明是要发送去云端再执行的指令。
wubijiadeMacBook-Pro:~ wooka$ ssh wu@10.66.182.88 "python3 ~/temp/a.py"
This is the function in b
接下来,对于云端虚拟机上产生的结果,我们要返回到本机中怎么办?其实,只要把scp的两个参数改变一下位置就可以了。
wubijiadeMacBook-Pro:~ wooka$ scp wu@10.66.182.88:~/temp/a.py ~/Desktop/
a.py 100% 53 72.8KB/s 00:00
Reference:
Mac OS利用ssh访问ubuntu虚拟机及云端操作的更多相关文章
- mac os 利用ssh 搭建git server服务器详细教程,以及git基本用法
详细讲mac 连接mac的git操作 首先在服务端上 第一:新建一个仓库 1, cd /Users/userName/projects 用linux命令进入一个你想要创建与他人共享的文件夹. 2,su ...
- 解决Mac OS X 系统在home文件夹下面操作不支持的方法
解决Mac OS X 系统在home文件夹下面操作不支持的方法 最近需要使用Mac OS X 系统尝试安装使用appium程序,安装过程中发现,Mac OS X 系统在home文件夹下面操作不支持 ...
- [大数据学习研究]1.在Mac上利用VirtualBox搭建本地虚拟机环境
1. 大数据和Hadoop 研究学习大数据,自然要从Hadoop开始. Hadoop不是一个简单的软件,而是有一些列软件形成的生态,其核心思想来自Google当初发布的三篇论文,后来做了开源的实现, ...
- Mac OS X 恢复 VMware Fusion 虚拟机中的 vmdk 文件
今天手贱把 VMware Fusion 虚拟机中的 Windows 10 搞挂了,原因是磁盘清理了下,然后重启就蓝屏了,Windows 10 自动修复.手动还原.手动重置系统,试过都不行,恢复系统是没 ...
- mac os利用xampp实现apache下的cgi
折腾了两天终于把问题解决了,mac os是10.10.3..够新了吧 系统原生的apache配置cgi老是配不好,突然发现xampp也有macos版的,准备下下来试试. 安装完成后,打开apache服 ...
- windows 访问 ubuntu虚拟机 django服务器 失败
配置ubuntu配置成桥接,在ubuntu虚拟机中运行django.py开发服务器.windows访问django失败. 虚拟机运行: python manage.py runserver 0.0.0 ...
- 远程訪问路由器下的mac os(ssh+vnc)
需求: 使用能够上网的外网pc(win7操作系统).远程訪问公网tp-link下的的mac电脑 环境: mac os -----tp-link-----------pc 工具: putty Tig ...
- 關於mac os系統的一些快捷鍵和操作
一.了解mac os 1.桌面的组成元素 2.认识“Dock栏” Dock是一个神奇的东西,可以把Dock理解为Windows的任务栏,在这个地方可以随意拖放你想常驻在你屏幕底部的应用. Dock在工 ...
- 如何将NTFS格式的移动硬盘挂接到Mac OS上进行读写(Read/Write)操作
现在硬盘便宜,很多同学都有移动硬盘,如果你同时使用Windows与Mac OS的话,移动硬盘最好不要使用NTFS文件系统,否则在Mac OS上,你只能读你的移动硬盘,不能写. 但是实际上的情况是,移动 ...
随机推荐
- 【第十课】Tomcat入门
目录 1.Tomcat介绍 2.Tomcat安装部署和配置 (1)tomcat下载和解压 (2)jdk环境变量配置 (3)设置tomcat以普通用户启动 (4)查看tomcat的配置 (5)tomca ...
- python 生成器按指定大小读取文件
#!/usr/bin/env python import osimport sys def read_file(fpath): Block_Size = 1024 with open(fpath,&q ...
- Macaca 基础原理浅析
导语 前面几篇文章介绍了在Macaca实践中的一些实用技巧与解决方案,今天简单分析一下Macaca的基础原理.这篇文章将以前面所分享的UI自动化Macaca-Java版实践心得中的demo为基础,进行 ...
- 使用VS2013和git进行代码管理
git是一款非常流行的分布式版本控制系统,使用Local Repository追踪代码的修改,通过Push和Pull操作,将代码changes提交到Remote Repository,或从Remote ...
- exchange 2010 的两个错误
最近公司要搭建邮件服务器 过程中 碰到两个问题,记录下来. 引以为戒 . 1,登陆界面能出来 但是无论输入什么都显示 乱码.问题原因 身份验证有问题. 如图所示: 改成这个,然后 重启 iis 就可 ...
- Docker GitHub 网站中 Readme.md 以技术者的角度翻译
Docker 是一个开源的轻量级容器项目,用于让你的应用在它上面打包.集装和运行.Docker 运行的环境既包含未知硬件也包含未知操作系统.这句话的意思是它可以运行在任何地方,小到你的笔记本大到一个大 ...
- tree的使用,显示行号,find命令应用
第1章 linux启动过程 1.开机自检bios 2.mbr引导 3.GRUB 菜单:选择不同的内核 4.加载内核 5.运行init进程 6.读取/etc/inittab运行级别配置文件 7.执行 / ...
- 【Android UI设计与开发】第01期:引导界面(一)ViewPager介绍和使用详解
做Android开发加起来差不多也有一年多的时间了,总是想写点自己在开发中的心得体会与大家一起交流分享.共同进步,刚开始写也不知该如何下手,仔细想了一下,既然是刚开始写,那就从一个软件给人最直观的感受 ...
- redis安装启动和数据操作
redis安装和启动 1.安装包下载地址 >> redis基本数据类型 string(字符串和数值) .list(列表/队列).hashmap(哈希表[键唯一]). set(集合[值唯一] ...
- 【MAVEN】Missing artifact jdk.tools:jdk.tools:jar:1.6 eclipse
搭建开发环境,遇到问题 : IDE 使用 eclipse 公司的项目用Maven管理,从git上拿下来代码后开始build后: 提示 [missing artifact jdk.tools ...