Aes*_*sir 28 server ssh openssh
我最近安装了 Ubuntu Server 12.04 (Precise Pangolin) 并打算将其主要用作文件服务器。我对 Linux 完全陌生,所以这是一个非常大的学习曲线。昨天我能够使用 SSH 密钥对在我的 Windows 7 机器上配置PuTTY,这样我就可以从我的桌面管理 Ubuntu Server。如果两台机器都在同一个网络上,这可以正常工作。
就我的笔记本电脑 ( MacBook Air ) 而言,它可能并不总是在同一网络上。当我的笔记本电脑在不同的网络上时,是否可以通过 SSH 从我的笔记本电脑连接到 Ubuntu 服务器?
我已经安装了 avahi 守护进程,以便在 LAN 上广播服务器的主机名并配置路由器,以便它始终为服务器分配相同的 IP 地址。除此之外,我在服务器上唯一安装的是OpenSSH,我在其中禁用了密码身份验证,因此您只能使用密钥对进行连接。
我以为我可以从笔记本电脑的终端上做这样的事情:
ssh my.external.ip.address user@hostname.local
Run Code Online (Sandbox Code Playgroud)
当我尝试该命令时,出现错误:
ssh:连接到主机 my.external.ip.address 端口 22:操作超时
我也试过
ssh my.external.ip.address user@servers.local.ip.address
Run Code Online (Sandbox Code Playgroud)
我收到与以前相同的错误消息。所以这应该让您了解我正在尝试做什么,但这是否可能,如果可能,我该怎么做?
假设我可以从我的笔记本电脑通过 ssh 设置外部连接,我的 ISP 可能会更改我的外部 IP 地址,这会中断外部连接。我希望能够可靠地连接,也就是说,如果我的 ISP 更改了外部 IP 地址,我仍然可以远程连接到服务器,而无需知道新的外部 IP 地址是什么。
KIA*_*aze 26
首先,正确的命令是:
ssh user@my.external.ip.address
并且应该将路由器配置为将 SSH 端口 22 转发到您服务器的本地 IP 地址。
1) 检查您的服务器和路由器上的端口 22 (SSH) 是否已打开(端口转发)。
2) 检查 SSH 服务器是否在您的服务器上运行
3)连接时使用ping,ssh -v查看/var/log/auth.log调试任何进一步的连接问题。
1) 在您的路由器上:按照路由器的特定说明进行操作
在您的服务器上:(sudo ufw status除非您使用其他防火墙配置实用程序)或sudo iptables -L(通用方法,但输出复杂)
要打开端口 22: sudo ufw allow 22
参见https://help.ubuntu.com/12.04/serverguide/firewall.html
2)检查是否安装: dpkg -l openssh-server
检查它是否正在运行:service ssh status或ps aux | grep sshd
3) 在连接客户端上:
ping my.external.ip.addressssh -v user@my.external.ip.address在服务器上:
sudo less /var/log/auth.log如有必要,您也可以检查路由器日志。
这是一个在线端口扫描器:https : //www.grc.com/x/ne.dll?bh0bkyd2
我认为您也可以使用nmap或其他工具,但我对它们还不太熟悉。
1) 获取一个 dynDNS 或类似账户:http ://dyn.com/dns/
动态 DNS 提供商列表:
2) 另一种解决方案是设置一个 crontab 作业,它会定期向您发送外部 IP 地址或放入诸如 dropbox 之类的在线存储服务中。
这是我的一个朋友使用的脚本:
#!/bin/bash
# Bash script to get the external IP address
MYWANIP=$(curl http://mire.ipadsl.net | sed -nr -e 's|^.*<span class="ip">([0-9.]+)</span>.*$|\1| p')
echo "My IP address is: $MYWANIP"
IPold=$(cat /home/USER/Dropbox/test.txt)
echo "Previous IP Address: $IPold"
if [[ $IPold != $MYWANIP ]] ;
then
echo "New IP"
rm /home/USER/Dropbox/test.txt
echo $MYWANIP >> /home/USER/Dropbox/test.txt;
echo $MYWANIP;
else
echo "Same IP";
fi
# example crontab entry:
## m h dom mon dow command
## */10 * * * * /home/USER/Dropbox/test_ip.sh
Run Code Online (Sandbox Code Playgroud)
1)首先,通过运行找出路由器的本地IP地址:
ip route | grep default
Run Code Online (Sandbox Code Playgroud)
它通常类似于 192.168.xx
替代方法和其他操作系统解决方案:
2) 使用本地连接到路由器的任何计算机,访问之前找到的 IP ,例如通过http://192.168.1.1。这应该会打开路由器配置界面。
3) 后续步骤因您的路由器而异。例如,这是在具有 OpenWRT 的路由器上完成的方法:
| 归档时间: |
|
| 查看次数: |
165497 次 |
| 最近记录: |