SSH!
SSH 是神命令——我认为它是最有价值的学习命令。这些选项可能非常令人生畏,但似乎我一直在学习为 SSH 使用新的命令行选项,而我从未认为这是必要的。在这一点上,我可能已经全部使用了它们。
您使用它的次数越多,您对它的了解就越多。你可以用它来做一些很棒的事情。
注意:所有这些事情都可以远程完成,无需在您的服务器上进行设置,除非运行 ssh 服务器。
通过互联网安装文件系统
在网上搜索 SSHFS
转发命令。
SVN+SSH 协议是从远程客户端到服务器的 Subversion,没有运行 DEAMON! SVN 命令通过 ssh shell 启动服务器,并通过现有管道来回传递信息。 rsync 程序做同样的事情,通过 SSH 自己启动一个没有 rsync 守护程序的服务器运行。编写自己的 bash 文件来执行类似的技巧很容易。
穿墙穿墙
我一直使用它来通过我家中的 linux 服务器跳转到我的 mac。
转发端口:
似乎只有适度的用处,直到您意识到您可以通过家庭防火墙反弹并在家中配置路由器,就像您在家庭网络中一样)。
转发 X 请求:
这是另一个了不起的。无论是否在远程系统上运行 X 服务器,您都可以运行 x-windows 程序,该窗口将出现在本地屏幕上。只需使用开关 -X 即可!
由于您不必在远程服务器上运行 X 服务器,因此对服务器的 CPU 影响很小,您可以拥有一个 TINY Linux 服务器,为运行 Windows 和 cygwin 的强大游戏 PC 提供大量应用程序/X。
当然 VI 和 EMACS 通过 SSH 工作,但是当我在家跑步时,有时我想要更多。我使用 ssh -X 来启动 Eclipse 的副本!如果你的服务器比你的笔记本电脑更强大,你的笔记本电脑上就有 GUI,但编译是在你的服务器上完成的,所以不用担心系统负载。
在批处理文件中运行
(意思是在其他系统上运行一个本地批处理文件):
两件事情结合在一起,使这件事情变得很酷。一是您可以通过使用(更安全的)加密密钥来消除密码提示。第二个是您可以在 SSH CLI 上指定命令。我以一些有趣的方式使用了它——比如当远程服务器上的编译失败时,我会让它通过 SSH 连接到我的计算机并播放声音文件。
请记住,您可以重定向远程命令的输出并在本地批处理文件中使用它,因此您也可以在本地跟踪服务器上运行的编译。
内置于 Mac
服务器和客户端都内置在 mac 和 linux 中。对于 Mac 和 Ubuntu,启用服务器就像找到正确的复选框一样简单。
在 PC 上安装 cygwin 或 cygwin/X(cygwin/X 将允许您将 x-window 输出从 Linux 机器转发到 Windows PC——它安装 X 服务器)
重要提示/配置文件
切勿在防火墙上使用端口 22。你会得到很多黑客尝试,这是不值得的。只需让您的防火墙将不同的端口转发到您的服务器即可。
有大量的配置选项可让您显着简化 ssh 命令。这是我在工作中的一个例子:
Host home
hostname billshome.hopto.org
Port=12345
user=bill
LocalForward=localhost:1025 mac:22
当我输入“ssh home”(没有别的)时,它就像我输入了一样:
ssh -p 12345 bill@billshome.hopto.org
然后将我的本地端口 1025 转发到我家中的系统“mac”。原因是我的文件中有另一个条目:
Host mac
hostname localhost
port=1025
所以一旦我完成了“ssh home”并且窗口仍然打开,我可以输入“ssh mac”,这里工作的计算机实际上会尝试连接到它自己的端口 1025,该端口已转发到"mac:22" 通过另一个命令,所以它会通过防火墙连接到我家的 Mac。
编辑——很酷的脚本!
我挖出了一个我很喜欢的旧剧本——必须回来把它发布给这里的任何可能感兴趣的人。该脚本称为“authMe”
#!/bin/bash
if [ ! -f ~/.ssh/id_dsa.pub ]
then
echo 'id_dsa.pub does not exist, creating'
ssh-keygen -tdsa
fi
ssh $1 'cat >>.ssh/authorized_keys' <~/.ssh/id_dsa.pub
如果您的主目录中有此脚本并且您可以连接到主机(通过 ssh),那么您可以输入“./authMe hostName”。
如果有必要,它会为你创建一个公钥/私钥对,然后它会 ssh 到另一台机器并复制你的公钥(ssh 命令会提示你输入密码...)
在此之后,SSH 命令在连接到该远程系统时不应再询问您的密码,它将使用公钥/私钥对。
如果您的远程计算机并不总是安全的,您应该考虑在出现提示时设置“密码”。
您可能还希望将远端的 ssh 服务器配置为不允许使用文本密码(仅限密钥)以提高安全性。