在不支持ssh key登录的站点也实现自动登录,就是用户不如输入密码

要解决问题

有些站点不提供sshkey登录,只让你用密码登录。因为ssh命令不让在命令行直接明文你给密码,所以每次登录要输入密码很不方便。

解决方法

受到这篇文章启发: http://linuxtoy.org/archives/sshpass.html , 用sshpass可以解决。请阅读该文行。

更新我 .bash_alias 下面内容

以前是:
alias sshsrv01='ssh 404@某服务器ip -p端口号'
这样输入 sshsrv01(就是ssh到sever01的简写 :),实际运行一个ssh登录命令,但需要输入密码才能登入。因为ssh命令不让你直接在命令行输入密码。

现在该行更新为:

  alias sshsrv01='sshpass -p 'ssh登录密码' ssh 404@某服务器ip -p端口号'

sshpass -p 可以让你在后面直接跟登录密码,密码要放在英文单引号中。

现在再次输入 sshsrv01, 直接就登录到server01上了,无须输入密码。和使用sshkey达到的效果一样。

注意

  • alias命令整体要放在英文单引号中。所以,命令中有2对单引号。**
  • 在登录时,sshpass让你觉得和用sshkey登录一样,但安全性上,passwd-based和key-based是不一样的。当然key-based安全!
  • 是否能运用到scp和rsync中我还没有试验。谁用了请说明。

用scp从远端服务器复制文件到本地

用scp从远端服务器复制文件到本地

发现以前写了使用scp的文章,更详细: http://pengyou.rijiben.org/node/1816

  scp -P端口号 服务器地址:/home/404/podcast/*.mp3 .

比较容易混淆的是用ssh时候,指定端口号用小写字母 -p ,scp时要用大写字母。
服务器地址后(通常是ip)加英文冒号,冒号后面是你要复制的目录和文件名字。
我这里用了通配符复制所有mp3文件。

其它没什么可说的。

如果是复制目录 -r
如果只复制更新了的文件 -u

一般来说, -u 是应该加上的。否则以前复制过的也复制一遍。

太棒了。总算用上ssh登录,在本地x下运行远程服务器上的程序:就是说remote server上不装x window,但我用本机 x window 跑remote server的firefox;就相当于一个vpn?

简单说,命令就是

  ssh -X 服务器ip地址 -p端口号

-X 就是 x window 链接。

服务器端需要允许转发x流量,就是 X forwarding。

更好的方式是:

  ssh -X 服务器 firefox -no-remote &

这样就启动了服务器上的firefox,从服务器上网。

具体以后写。不难。

登录后,还是字符界面。但我在服务器端安装了firefox。如果不用 ssh -X 登录,输入firefox会告诉你

  (firefox-bin:9695): Gtk-WARNING **: cannot open display:  

通过 ssh -X 登录。输入firefox,直接启动并用本地的x windows启动。但你的ip地址是远端服务器的。

问题:

似乎还是运行我本地的firefox。但这样运行是通过服务器在上网么?相当于隐身了一下?

sshmenu

sshmenu

项目主页

http://sshmenu.sourceforge.net/

在gnome桌面建立小程序图标,点中后快速ssh链接到某站点。有点像windows下的putty。

安装

在ubuntu gnu/linux 中直接用新立得软件管理包搜索 sshmenu 选中后安装就可以了。

或者用

   sudo apt-get install sshmenu-gnome 

只后在gnome面板上点右键添加(add to panel),选中sshmenu就可以了

使用

在prefernece添加站点。如果你的ssh服务器不是运行在标准的22端口,我有个站点就不是,直接在hostname(etc)栏里跟端口号,如

  12.0.0.25 -p 3512

3512就是端口号。不在标准端口运行ssh好处是能过滤些很多垃圾攻击,就是试你标准端口的攻击。虽然这只是“虚假的安全(pseudo security)”但还是有一定效果的。

高手当让不用sshmenu而直接在bash中建立alias啦

我就想成为高手。但一直没摸索出方法。bash中的alias也不太会建立。这方面文章很多,打印出来好好读读就会。在那之前,或者你喜欢用图形化的界面。sshmenu是个不错的选择。

比如我如果是高手我会用

  alias ssh129='ssh 404@129.0.0.25 -p 3512'

这样,我在bash下输入ssh129这个命令就会用404的身份登录到129.0.0.25,端口是3512。简单吧。比点好几下鼠标方便。

ssh相关howto

高高手用其它工具

高高手因为同时管理多台机器,经常需要上多台机器完成相同工作。所以会用另外一个工具,名字忘了,因为我不用。该工具让你能够只发布一条命令,它自动登录到多台机器上,分别执行。