linux ssh root登录配置/无密码和证书登录

一、无密码登录办法

环境:本机器:ubuntu 9.04,服务器centos5.x系列。
最近为了工作需要,开机启动将服务器的文件挂载到自己的工作区,
一开始采用smbmount进行挂载,建立项目进行开发。挂载里面的文件,每次保存时都会提示你文件已经修改需要你刷新整个项目,太麻烦了。都不敢随便保存。不实时保存容易出现的问题大家可想而知。
Samba是为大家在windows和linux进行文件共享量身定制的。但是对于linux而言就不尽人意了。

smbmount 挂载可以直接在参数上面输入用户名和密码。当然开机挂载很容易了,命令如下:

  1. 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;
  4. 在exit 0 之前加上:
    su martin -c 'sshfs user@ip-address:
    /remote/directory /www/workspaces;’#martin拥有私钥的用户
  5. 但是这个中间需要输入密码。下面讲以下ssh无密码登录.

适用情景:

  • 觉得输入密码烦躁的时候。
  • 不得不从其他服务器scp文件的时候。

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

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


    ssh use public key

    其中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;可以看到登录记录。


ssh use public key

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

出现错误

Agent admitted failure to sign using the key.
则需要在M机器上将私钥添加进来
ssh-add .ssh/id_rsa;

 

二、linux使用证书ssh登陆

ssh-keygen -t rsa
指定密钥路径和输入口令之后,即在/home/msa/.ssh/中生成公钥和私钥:id_rsa id_rsa.pub(root账号下在/root/.ssh/中)
输入口令之后在CRT中登陆的时候需验证口令

如以下例子
[root@kangta-01 .ssh]# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
06:25:cd:e3:b6:e7:13:76:3e:59:81:4f:77:43:bd:0a root@kangta-01
[root@kangta-01 .ssh]# ll
总计 12
-rw------- 1 root root 1743 11-28 23:47 id_rsa
-rw-r--r-- 1 root root 396 11-28 23:47 id_rsa.pub
-rw-r--r-- 1 root root 395 11-17 00:38 known_hosts

cat id_rsa.pub >> authorized_keys
至于为什么要生成这个文件,sshd_config里面写的就是这个.
然后chmod 400 authorized_keys,稍微保护一下.

在CRT上的终端可用sz id_rsa拉回本地,然后把服务器上的id_rsa和id_rsa.pub干掉

6)配置/etc/ssh/sshd_config
Protocol 2
ServerKeyBits 1024
PermitRootLogin no #禁止root登录而已,与本文无关,加上安全些

#以下三行没什么要改的,把默认的#注释去掉就行了
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys

PasswordAuthentication no
PermitEmptyPasswords no

7)重启sshd
/sbin/service sshd restart

8)转换证书格式
运行CRT,在tools下convert private key to openssh format 转换id_rsa为crt的ppk证书文件

9)配置CRT登录
在connection--SSH--publickey中,点击Browse,选择刚刚转换好的证书.

三、SSH远程登录失败,提示“Password authentication failed”

用SecureCRT登陆,提示“Password authentication failed”

使用linux下ssh登陆,提示“Permission denied, please try again.” 

网上收集的相关资料:

方法一:

1. vi服务器端的/etc/ssh/sshd_config

2. 把PasswordAuthentication设成yes

3. 重启ssh服务

  

方法二:

1.vi服务器端的/etc/ssh/sshd_config

2.找到#PermitRootLogin no将其修改为PermitRootLogin yes

 方法三:

1.查看sshd是否正确在运行

   netstat -anp | grep sshd 

2.如果没有运行使用 service sshd restart 重启服务

 方法四:

1.客户端使用 ssh -v root@192.168.0.120 查看登陆信息

2.提示“Permission denied, please try again.”

3.查看防火墙

  #/etc/init.d/iptables status

  如果22端口被限制则无法登陆。

  放开端口22

 #/sbin/iptables -I INPUT -p tcp –dport 22 -j ACCEPT

 #/etc/rc.d/init.d/iptables save

时间: 2024-10-26 06:38:48

linux ssh root登录配置/无密码和证书登录的相关文章

[linux]ssh原理以及配置

简介 a.ssh 是种通用的网络传输加密机制 b.ssh采用的是不对称加密方式传输,分一个公匙和一个私匙    公匙用来加密  私匙用来解密     .ssh/目录下可能存在的文件    authorized_keys   -其他机器生成的公匙放在本机的,名字必须是这个    id_dsa  -密匙    id_dsa.pub -公匙    known_hosts  -曾经用ssh连过的机器    c.ssh分两个版本1.x和2.x ,目前linux上一般用的都是openssh 兼容1.x和2.

Linux系统中sftp配置之密钥方式登录

由于vsftp采用明文传输,用户名密码可通过抓包得到,为了安全性,需使用sftp,锁定目录且不允许sftp用户登到服务器.由于sftp使用的是ssh协议,需保证用户只能使用sftp,不能ssh到机器进行操作,且使用密钥登陆.不是22端口. 1. 创建sftp服务用户组,创建sftp服务根目录 groupadd sftp #此目录及上级目录的所有者必须为root,权限不高于755,此目录的组最好设定为sftp mkdir /data/sftp chown -R root:sftp /data/sf

服务器-linux下root用户切换到普通用户执行ssh远程登录失败

问题描述 linux下root用户切换到普通用户执行ssh远程登录失败 这样,我想做一个web一件抓取日志的小程序,后台python调用ssh登录到远程主机执行系统命令抓取符合条件的日志,这个程序集成在一个运行在root下的web站中,然而服务器 设定了root用户不能用ssh远程登录.我想请教是否可能在程序中切换到普通用户登录ssh远程登录其他主机执行ssh命令,然后再切回root...或者是否有其他好的方法来实现这一 功能.(很多台服务器,一次性抓取符合条件的日志) 解决方案 linux下如

linux远程登录ssh免密码配置方法_Linux

一.情景 公司刚上几台Linux,现在要把主机之间都能远程ssh免密码登陆. 二.原理很简单,使用ssh-keygen 在主机A上生成private和public密钥,将生成的public密钥拷贝到远程机器主机B上后,就可以使用ssh命令无需密码登录到另外一台机器主机B上. 三.步骤 主机A: 1. 生成公钥和私钥文件id_rsa和id_rsa.pub (敲3下回车即可) [root@bogon ~]# ssh-keygen -t rsa Generating public/private rs

linux ssh 别名登录小技巧_Linux

为了方便登录服务器,我们一般使用putty.SecureCRT等等工具.在终端如何通过服务器别名来进行登录呢? 可以创建~/.ssh/config 文件并为每台服务器指定登录信息和验证方法,如下所示: $ vim ~/.ssh/config Host www HostName www.ttlsa.com Port 22 User root IdentityFile ~/.ssh/id_rsa.pub IdentitiesOnly yes Host bbs HostName 115.28.45.1

linux中ssh公钥认证配置例子

在两台linux主机上由于环境的需要,经常要配置两台主机之间免密码登录,这就要用到key认证,也就是所谓的公私钥认证.便于理解,我这里指定两台主机为 A 和 B .如果A主机想免密码登录到B主机上,则A主机上存放私钥,B 主机上存放公钥.通过ssh-keygen 命令生成的两个文件为:公钥文件 ~/.ssh/id_rsa.pub: 私钥文件 ~/.ssh/id_rsa .而B主机上存放公钥时,需要将id_rsa.pub的内容存放到~/.ssh/authorized_keys 文件内,并且保证权限

日志-ssh root远程不能登录

问题描述 ssh root远程不能登录 上次遇到ssh无法远程登录,连密码确认框都不会弹出,捣鼓了一天,又发现新的问题了,centos 系统安装里的denyhosts,开始每次登陆,无论谁的电脑,甚至是别的城市的电脑登陆,无论密码对错,全部被加入到hosts.deny中 后来直接清空日志,把这个服务停止了,然后再看hosts.deny没有被加入,而且也能弹出密码输入确认框. 现在的问题是sshd服务正常,关闭Selinux,关闭防火墙,端口未占用,可就是远程连接不上.真是郁闷里的啊. 解决方案

linux下 root 登录 MySQL 报错的问题_Mysql

最近在centOS 7上,通过yum安装了mysql,安装成功后,使用root登录,出现了如下报错: ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO) mysql版本为:Ver 14.14 Distrib 5.7.10, for Linux(X86_64) using EditLine wrapper 然而实际上并没有进行过root密码设置(不知道是不是安装过程有被忽略的地方?).

linux中Pure-FTPd 安装配置笔记

下载: 从官方网站下载最新的稳定版本http://www.pureftpd.org/ 其最新版本是1.0.29,下载地址 为:http://download.pureftpd.org/pub/pure-ftpd/releases/pure-ftpd-1.0.29.tar.bz2. 系统环境 CentOS 5.5 PureFTPd 1.0.29 编译安装  代码如下 复制代码 # tar -xvjf pure-ftpd-1.0.29.tar.bz2 # cd pure-ftpd-1.0.29 #