参考了http://www.centospub.com/make/sshd.html
http://hanyu.iciba.com/wiki/321287.shtml
我们管理linux主机时,假如客户端机器比较固定但是ip会变而且想以root方式登陆时,该怎么办,因为ip会变,所以无奈防火墙只好开放22端口给全部的ip连接请求,这时可以禁止用户以密码方式登陆,只让远程以公钥私钥对的方式登陆主机
vi /etc/ssh/sshd_config
修改内容
PasswordAuthentication yes 后面的yes ,改为
PasswordAuthentication no
然后
/etc/rc.d/init.d/sshd restart
但是请一定注意:在这样操作之前必须设置公钥私钥对,具体内容网上有。
这样之后,别人(也包括自己)除非获取私钥,否则无法登陆你的linux主机
=======================================
以下是另一种安全方法:
如果不用root登陆,则方法更加简单一些
vi /etc/ssh/sshd_config
修改内容
PermitRootLogin yes 后面的yes ,改为
PermitRootLogin no
然后
/etc/rc.d/init.d/sshd restart
但是请一定注意:在这样操作之前必须给linux主机设置一个普通用户,同时记下linux主机的root密码和刚才那个普通用户的用户名和密码才好。
=======================================
以下内容抄自《鸟哥的linux私房菜(服务器架设篇)》
这个ssh协议,在默认状态下,本身就提供两个服务器功能:一个是类似Telnet的远程联机使用shell的服务器,就是俗称的ssh,另一个是类似FTP服务的sftp-Server,可以提供更安全的FTP服务。
联机加密简介
网络数据包的加密技术通常是通过所谓的一对公钥和私钥组合成的密钥对进行加密和解密的操作。主机端所要传给客户端的数据,会先通过公钥加密后再送到网络上传输。而到达客户端后,再经由私钥将加密的数据解开来。
以下只介绍客户端也是linux的情况
直接登陆远程ssh的命令
ssh account@hostname
exit是退出ssh。
还可以直接执行命令。如下
ssh dmtsai@hostname date
直接执行date命令
另外,当首次连接到远程主机时,会收到提醒:您联机的key尚未建立,输入yes就可以了。
===========================
设置不用输入密码可立即登陆的ssh用户
(1)先在客户端建立公钥和私钥这两个密钥,利用的命令是ssh-keygen
(2)将私钥放在客户端的默认目录下,亦即$HOME/.ssh,并且修改权限位仅该用户可读的状态。
(3)将公钥放在任何一个您想要用来登陆的主机的某个用户的默认目录内的.ssh/里的认证文件,即可完成整个程序。
1、客户端建立
ssh-keygen -t rsa
连续按几个回车确认。
屏幕会显示私钥和公钥。
私钥的后缀是.pub 所以很好认
会在当前用户的家目录下的.ssh目录下建立两个文件,公钥和私钥。
ls ~/.ssh
2、默认的位置就是对的
3、在服务端放置可以登陆的公钥
要使用scp命令先吧客户端建立的私钥拷贝到远程的家目录下
客户端:
cd ~/.ssh
scp id_rsa.pub root@远程ip:~/
在服务端
cd ~/.ssh
cat ../id_rsa.pub >> authorized_keys
现在客户端可以直接连远程而不需要密码
客户端:
ssh root@远程ip
========================
2011.12.13
如果服务端没有.ssh目录
则
mkdir -p $HOME/.ssh && touch $HOME/.ssh/authorized_keys \
&& chmod go-w $HOME $HOME/.ssh $HOME/.ssh/authorized_keys