使用ssh连接VirtualBox虚拟机
步骤:
虚拟机的网络就相当于主机一样并行存在,所以当前主机要连接到路由器或交换机等设备,以使两个系统处于同一局域网。
NAT模式即虚拟机的网络是完全依赖于物理主机的网络。此时两个系统并不是处于同一局域网,不能简单的ping通;
但是可以设置Virtualbox在NAT模式(网络地址转换NAT)下的端口转发规则,通过设置规则可使主机连接虚拟机。
设置 - 网络 - 网络地址转换(NAT) - 高级 - 端口转发 - 添加规则 :
示例:
测试是否安装ssh:
测试是否可以使用SSH连接 :使用密码登录(设置好端口转发后)
因为端口不是常规默认的,所以需要指定 port
如进行ssh连接则在shell中输入:
进行sftp连接(其端口与ssh是一样的,因为它是ssh的一部分):
ftp连接:
可能并不成功,不知是不是防火墙的问题,使用sftp就好了,更安全。
将上面的 username 改为自己的。
前提是虚拟机中的Linux安装了ssh服务并开启,且关闭了防火墙(或添加了相应规则)。
安装ssh:
启动服务:
查看是否启动:
配置防火墙
此时在远程客户端进行连接测试,如果可行
Linux 上安装 ssh (Ubuntu RedHat)
使用了动态防火墙:变更后无需重启系统。它不能与静态防火墙共存。
可以选择开启某个端口,或完全关闭防火墙
查看是否已经开启:
在列出的信息中,查看port开头的行是否包含 22 。
查看防火墙状态:
临时关闭防火墙:
永久关闭防火墙:
打开防火墙:
注意需要root权限。
关闭:
开启:
开机默认关闭防火墙:(即永久)
开机默认开启防火墙:
fedora不可用
参考:
SSH原理与运用(一):远程登录
SSH原理与运用(二):远程操作与端口转发
Asrchlinux wiki:
Secure Shell (简体中文)
SSH keys (简体中文)
这部分不大全面。
公钥 是一串很长的字符,为了便于肉眼比对和识别,所以有了指纹这东西,指纹位数更便于识别且与公钥一一对应。
运行命令ssh-keygen采用rsa加密算法生成 密钥对 :
生成密钥对时,有一个选项要求你设置密码passphrase,该密码是用来保护你的私钥的密码。如果设置了则在使用私钥时会要求你输入这个密码; 一般不设置,记不住 【之后还可更改此密码,使用ssh-keygen -p】。
生成后最好将私钥进行备份。另还有 -C 选项,用于为指定注释 通常使用自己的邮件名作为注释 。
-b bits选项 Specifies the number of bits in the key to create. For RSA keys , the minimum size is 1024 bits and the default is 2048 bits. Generally, 2048 bits is considered sufficient. DSA keys must be exactly 1024 bits
示例:为了安全考虑使用RSA加密并设置 -b 4096
实际操作的一次示例:
指纹的用处之一是在使用SSH第一连接到某主机时,会返回该主机使用的公钥的指纹让你识别。示例:
把公钥上传到服务器端有很多方法:
使用sftp的示例:
使用ssh-copy-id的示例:
默认上传到 ~/.ssh/id_ecdsa.pub
上传之后:
导入公钥内容到指定的文件中
保证 authorized_keys 文件的安全
sshd的配置文件位于: /etc/ssh/sshd_config
只需配置:
关闭服务器中的SELinux服务:
其配置文件是: /etc/selinux/config
在文件中添加:
重启系统 或 使用root账户运行: setenforce Permissive
服务器端重启ssh服务:
service sshd restart
连接时出现的提示信息
相关示例:
有一次出现:
这可能是我配置了两台虚拟机,虚拟机配置端口转发时设置的IP地址和端口都是相同的。才导致此提示该主机的指纹(也可能是指公钥)已经改变;更改了端口就没有问题了。(另一种做法是删除.ssh/known_hosts文件,以后连接时再全部重新导入)
后一次出现
这段提示用于提示你是否信任该主机(这里指服务器),如果输入yes则信任该主机并且将该服务器的公钥追加到 .ssh/known_hosts文件中。
如何通过弹性公网IP远程SSH登录虚拟机?
想要通过移动云弹性公网IP远程SSH登录虚拟机,就需要在要访问的虚拟机对应的安全组上,添加允许流量流入的规则,而规则的目的端口需要设置为22,授权对象需要设置为本地公网IP地址。弹性公网IP支持的带宽选择范围是1Mbps至500Mbps之间,步长为1M进行增长。目前,移动云的“狂欢双11,「移」价到底”活动正在进行中,新用户注册可享专属礼包,比如弹性公网IP可以领取5折优惠券。了解移动云弹性公网IP更多详情,欢迎注册登录移动云官网→;utm_term=seo%E8%BD%AF%E6%96%87-%E5%8F%8C11-H5utm_content=seo%E8%BD%AF%E6%96%87-%E5%8F%8C11-H5_channel_track_key=9bFkDb1V。百度里面也有详细介绍。
用ssh免密码以root身份登陆vagrant虚拟机
原来登陆vagrant虚拟机都是用 vagrant ssh VM_name ,但是在自己虚拟机上,只是测试使用,为了方便想直接以root身份登陆而不是vagrant身份。
主机:mac os10.12.4
虚拟机: Ubuntu 14.04
下面是实现主机到虚拟机实现root免密码登陆:
1 sudo vim /etc/hosts ,在里面添加: VM_ip VM_name 。
2 把主机里的公钥拷贝到共享文件夹: cp ~/.ssh/id_rsa.pub ~/vagrant/id_rsa.pub
3 登陆到虚拟机内,执行下面的命令:
同样的原理可以实现从一台虚拟机通过ssh登陆到其他虚拟机,不懂可以联系我。
主要有几个点需要注意:
ssh连接到虚拟机的一般方法
最近突然一下想研究(折腾)一下freebsd,于是在vbox里装了一个freebsd,没有图形界面的操作系统总是吃很少的资源。但是
于是我自然想到用自己的终端通过ssh连接到虚拟机,总有一些想尝试linux的同学,徘徊在双系统和虚拟机中。我的建议是,装服务器版的Linux发行版到虚拟机中,然后通过xshell登陆到自己的虚拟机,这才是最专业的做法 :)。
首先装机,一般服务器版都是没有图形界面的,分配128m内存足够了,我给我的分配了512m的内存(因为我有的时候利用ports直接源码安装,即使是这样也足够了)。
首先在虚拟机中ping一下看连上网没有,如果没有连上网,ssh无法访问:)
vbox创建时的网络选取的是NAT连接(网络地址转换),所以我们只需要改变端口就可以了,我们可以将自己主机的端口映射到22端口上(ssh默认22端口),这样我们可以访问localhost就能连上虚拟机了。
如果你的2222端口没有被占用的化,这样就设置好了。
然后设置服务器的sshd服务,一般都会自带,如果没有的话可以用包管理器安装 然后启动的服务
下面是我的sshd_config的配置,可以进行适当修改
然后输入ssh -p 2222 YOURNAME@127.0.0.1
YOURNAME 指的是你自己的用户名,这样就可以登陆上去了cheers~
如何使用ssh登录虚拟机Ubuntu
方法/步骤
准备工作:首先需要在windows系统中安装虚拟机,并在虚拟机中安装好linux操作系统,这里安装的是vmware player虚拟机和ubuntu版本的操作系统。关于该部分的安装在作者的其他经验中有详细介绍。
在windows主机中安装上ssh软件,ssh是Secure Shell 的缩写,主要提供远程登录协议。windows下的安装很简单,只要下载好安装程序,双击即可安装。安装完成后会生成两个软件图标。
在ubuntu系统中安装ssh,通常ubuntu中默认是安装的。可以通过命令进行查看:dpkg -l | grep ssh
如果ubuntu系统中没有安装ssh程序,也可以使用下列命令进行安装:
sudo apt-get install openssh-client
sudo apt-get install openssh-server
安装好后ssh服务的启动和停止命令如下:
启动ssh服务:
#sudo /etc/init.d/ssh start
停止ssh服务:
#sudo /etc/init.d/ssh stop
重启ssh服务:
#sudo /etc/init.d/ssh restart
通过虚拟机启动ubuntu系统,打开shell终端,通过ifconfig命令,查看该系统的ip地址,ssh的端口号一般为22.
打开windows系统中的ssh客户端软件,选择快速连接,输入ubuntu系统的ip地址和账户名,并根据提示输入密码,即可通过ssh登录到ubuntu系统中去,并执行各种命令操作。
还可以通过ssh软件文件传输软件,将windows中的数据传输到ubuntu系统中。同时也可以将ubuntu系统中的文件下载到当前的windows系统中。方法是:选中文件--右键--上传(下载)。
如何用ssh连接虚拟机中的linux
首先确保虚拟机的ssh服务已经启动;
其次检查虚拟机防火墙是否允许ssh服务连接;
最后在安装ssh-client的机器上执行如下命令
ssh user@ip
注:请用实际的user和ip对应替换。