use a nickname replace username@ipaddress when using ssh scp sftp etc…

使用自定义名来取代用户名@IP的方法

在使用ssh或者scp等命令的时候也许你已经难以忍受每次都敲又臭又长的IP地址。如果我们能把它改成ssh nickname就可以直接代替ssh username@178.1.1.123那该多好,十分方便,也避免了鼠标手的概率。

其实解决方法很简单,参考

http://guoshaoguang.com/blog/2013/10/08/using-ssh-scp-sftp-with-no-password/ ,在这篇文章里面我们已经建立的ssh文件夹,我们只需要在~./ssh文件夹中建立一个config文件,内容如下:

1.      Host nickname

2.      User username 

3.      HostName 192.168.0.120 

在这个文件中我们定义了一个叫nicknamehost,它下面的所有配置项(直到下一个host定义之前)都隶属于这个host,我们为nickname设定了用户名和密码。以后在任何需要敲 username@192.168.0.120 的地方,你都可以使用nickname来替代。这并不限于ssh命令,比如scp file nickname也是可以的。

using ssh scp sftp with no password

取消使用ssh时需要输入密码的方法

有些时候,我们在复制/移动文件到另一台机器时会用到scp,因为它比较安全。但如果每次都要输入密码,就比较烦了,尤其是在script里。不过,ssh有另一种用密钥对来验证的方式。

l  第一步:生成密匙对,我用的是rsa的密钥。使用命令ssh-keygen -t rsa,直接回车就可以;

l  修改目录的权限chmod 755 ~/.ssh

l  将公共密钥复制的远程机器scp ~/.ssh/id_rsa.pub  remoteIP:/home/user1/.ssh/authorized_keys,此时即可在使用sshscpsftp的时候不用输入密码了。

ssh Host key verification failed

ssh“Host key verification failed.“的解决方案

前面说过有个比较简单的方式是直接删除ssh的记录文件即可,即:

mv ~/.ssh/known_hosts /tmp

而对于比较永久的考虑,可以修改ssh的配置文件,即:

SSH对主机的public_key的检查等级是根据StrictHostKeyChecking变量来配置的。默认情况下,StrictHostKeyChecking=ask。简单所下它的三种配置值:

l  StrictHostKeyChecking=no  #最不安全的级别,当然也没有那么多烦人的提示了,相对安全的内网测试时建议使用。如果连接serverkey在本地不存在,那么就自动添加到文件中(默认是known_hosts),并且给出一个警告。

l  StrictHostKeyChecking=ask  #默认的级别,就是出现刚才的提示了。如果连接和key不匹配,给出提示,并拒绝登录。

l  StrictHostKeyChecking=yes  #最安全的级别,如果连接与key不匹配,就拒绝连接,不会提示详细信息。

 

我们可以设置:StrictHostKeyChecking=no这样就不会出现这个问题了。

用SSH退出符切换SSH会话

这个技巧非常实用。尤其是远程登陆到一台主机A,然后从A登陆到B,如果希望在A上做一些操作,还得再开一个终端,很是麻烦。

当你使用ssh从本机登录到远程主机时,你可能希望切换到本地做一些操作,然后再重新回到远程主机。这个时候,你不需要中断ssh连接,只需要按照如下步骤操作即可:

当你已经登录到了远程主机时,你可能想要回到本地主机进行一些操作,然后又继续回到远程主机。在这种情况下,没有必要断开远程主机的会话,你可以用下面的办法来完成:

1.     登入远程主机:

a)      localhost$ ssh -l jsmith remotehost

2.     已连接远程主机:

a)      remotehost$

3.     要临时回到本地主机,输入退出符号:“~”“Control-Z”组合

4.     现在你已经退回到了本地主机,ssh远程客户端会话就在UNIX后台中运行,你可以向下面那样查看它:

a)      localhost$ jobs

b)      [1]+ Stopped ssh -l jsmith remotehost

5.     你可以将后台运行的ssh会话进程切换到前台,重新回到远程主机,而无需输入密码

a)      localhost$ fg %1

b)      ssh -l jsmith remotehost remotehost$

调试SSH客户端会话

ssh连接出现问题时,我们需要通过查看调试信息来定位这些错误。一般来讲使用v选项(注意:是小写的v),即可查看调试信息。

不加调试的使用方法为:$ssh -l  username remotehost.example.com

增加调试的使用方法为:$ssh –v -l  username remotehost.example.com

如此这般,机会出现比较详细的debug信息了。