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上,你只能读你的移动硬盘,不能写. 但是实际上的情况是,移动 ...
随机推荐
- libgdx学习记录6——动作Action
libgdx中的Action类能够有效的帮助我们实现位移.旋转.缩放.淡入淡出等效果,对游戏的设计很有用. Action是一个抽象类,本身不可以实例化.一般使用的它的继承类,常用的有 MoveToAc ...
- 【Orleans开胃菜系列1】不要被表象迷惑
[Orleans开胃菜系列1]不要被表象迷惑 /** * prism.js Github theme based on GitHub's theme. * @author Sam Clarke */ ...
- LeetCode Search for a Range (二分查找)
题意 Given a sorted array of integers, find the starting and ending position of a given target value. ...
- Activity猫的一生-故事解说Activity生命周期
大家好,关于Android中Activity的生命周期,网上大多数文章基本都是直接贴图.翻译API,比较笼统含糊不清. 我就用故事来说一说: 有个人叫User,TA养了几只猫,有只猫叫Activity ...
- WayOS计费对接(零点计费系统)详细教程
零点计费系统开发也有两年了,一直都是自己和朋友在使用,今年开始有对外免费开发体验的想法,在此简单介绍一下wayos和零点计费的对接教程. 可到官网www.feidian8.com里面的首页点击查看零点 ...
- 总结com组件问题,随笔记录
一.从 IClassFactory 为 CLSID 为 {00024500-0000-0000-C000-000000000046} 的 COM 组件创建实例失败,原因是出现以下错误:80010001 ...
- Jmeter目录文件讲解
1.bin:核心可执行文件,包含配置 2.windows启动文件:jmeter.bat mac或linux启动文件:jmeter jmeter-server:mac或linux分布式压测启动文件 jm ...
- ats 安全
Controlling Access ats可以配置为仅允许某些客户端使用代理缓存. 1. 为ip_allow.config添加一行,以获取允许访问ats的每个IP地址或IP地址范围; 2. traf ...
- 前后端同学必会的Linux基础命令
无论是前端还是后端同学,一些常用的linux命令还是必须要掌握的.发布版本.查看日志等等都会用到.以下是我简单的总结了一些简单又常用的命令,欢迎大家补充.希望能帮助到大家 基础篇 1.进入目录 cd ...
- mysql数据出现Unknown column 'user_uid' in 'field list' sql错误
来源:https://blog.csdn.net/gnail_oug/article/details/53606608 在操作mysql数据库时提示com.mysql.jdbc.exceptions. ...