日期:2014-05-16  浏览次数:20629 次

linux 之间ssh无密码登录

环境:本机器:ubuntu 9.04,服务器centos 5.x系列。

最近为了工作需要,开机启动将服务器的文件挂载到自己的工作区,

一开始采用smbmount进行挂载,建立项目进行开发。挂载里面的文件,每次保存时都会提示你文件已经修改需要你刷新整个项目,太麻烦了。都不敢随便保存。不实时保存容易出现的问题大家可想而知。

Samba 是为大家在windows和linux 进行文件共享量身定制的。但是对于linux而言就不尽人意了。

  1. smbmount 挂载可以直接在参数上面输入用户名和密码。当然开机挂载很容易了,命令如下:
  2. sudo /etc/rc.local;
    smbmount //ip:/xxx /mnt/ -o user%pwd;

以上方式不推荐使用。

那么linux之间挂载采用什么方式呢 —— 有以下两种 nfs,sshfs。本人再用的是sshfs。

具体挂载命令如下。

  1. 安装 :sudo apt-get install sshfs;
  2. sudo sshfs user@ip-address: /remote/directory /www/ workspaces;
  3. 开机自动挂载
    sudo /etc/rc.local;
    在exit 0 之前加上:
    sshfs user@ip-address :
    /remote/directory /www/ workspaces;
  4. 但是这个中间需要输入密码。下面讲以下ssh无密码登录.
适用情景:
  • 觉得输入密码烦躁的时候。
  • 不得不从其他服务器scp文件的时候。

下面M表示本机,S表示服务器(或者目的ip)

  1. 首先在M运行ssh-keygen -t rsa;#dsa表示加密类型,exp:dsa,rsa
    然后回车知道结束。
  2. cd ~/.ssh/;ls -l;会看见有下面几个文件

    其中id_rsa 是私钥。id_rsa.pub是公钥。
    将M中ssh生成的公钥复制下来。
  3. 接下来进如ssh 链接上S机器。
    将公钥内容复制到S机器。
    vi ~/.ssh/authorized_keys;
  4. 在S机器将文件authorized_keys赋予600权限。
    chmod 600 ~/.ssh/authorized_keys;
    多个用户可以将自己机器内生成的公钥在authorized_keys下面复制进去。

这样就完成了。

vi /var/log/secure;可以看到登录记录。

卸载,方法使用umount /xxx就行。

出处: 马丁博客 [http://www.blags.org/ ]

本文链接地址: http://www.blags.org/ssh-without-password-between-linux/