使用
1 | $ ssh [-f] [-o 参数项目] [-p 非正规埠口] [账号@]IP [指令] |
使用root用户登录远程主机
1 | $ ssh root@server |
如果本机用户和想要登录的用户相同则可以直接输入地址登陆(但不建议这样做)
1 | $ ssh server |
登入对方主机执行过指令后立刻离开的方式
1 | $ ssh student@127.0.0.1 find / &> ~/find1.log |
与上题相同,但是让对方主机自己跑该指令,你立刻回到近端主机继续工作
1 | $ ssh -f student@127.0.0.1 find / &> ~/find1.log |
删除掉 known_hosts 后,重新使用 root 联机到本机,且自动加上公钥记录
1 | $ rm ~/.ssh/known_hosts |
sshd 服务器细部设定
基本上,所有的 sshd 服务器详细设定都放在 /etc/ssh/sshd_config
里面!不过,每个 Linux distribution 的预设设定都不太相同,所以我们有必要来了解一下整个设定值的意义为何才好! 同时请注意,在预设的档案内,只要是预设有出现且被批注的设定值 (设定值前面加 #),即为『默认值!』,你可以依据它来修改的哩。
1 | $ vim /etc/ssh/sshd_config |
基本上,CentOS 预设的 sshd 服务已经算是挺安全的了,不过还不够!建议你 (1)将 root 的登入权限取消; (2)将 ssh 版本设定为 2 。其他的设定值就请你依照自己的喜好来设定了。 通常不建议进行随便修改啦!另外,如果你修改过上面这个档案(/etc/ssh/sshd_config),那么就必需要重新启动一次 sshd 这个 daemon 才行!亦即是:
1 | $ /etc/init.d/sshd restart |
制作不用密码可立即登入的 ssh 用户
三个步骤
1 | 1、客户端建立两把钥匙:想一想,在密钥系统中,是公钥比较重要还是私钥比较重要?当然是私钥比较重要!因此私钥才是解密的关键啊!所以啰,这两把钥匙当然得在发起联机的客户端建置才对。利用的指令为 ssh-keygen 这个命令; |
1. 客户端建立两把钥匙
建立的方法很简单,在 clientlinux.centos.vbird 这部主机上面以 vbirdtsai 的身份来建立两把钥匙即可。 不过,需要注意的是,我们有多种密码算法,如果不指定特殊的算法,则默认以 RSA 算法来处理:
1 | $ ssh-keygen [-t rsa|dsa] <==可选 rsa 或 dsa |
请注意上面喔,我的身份是 wxnacy ,所以当我执行 ssh-keygen 时,才会在我的家目录底下的 .ssh/ 这个目录里面产生所需要的两把 Keys ,分别是私钥 (id_rsa) 与公钥 (id_rsa.pub)。 ~/.ssh/ 目录必须要是 700 的权限才行!另外一个要特别注意的就是那个 id_rsa 的档案权限啦!他必须要是 -rw——- 且属于 vbirdtsai 自己才行!否则在未来密钥比对的过程当中,可能会被判定为危险而无法成功的以公私钥成对档案的机制来达成联机喔。 其实,建立私钥后预设的权限与文件名放置位置都是正确的,你只要检查过没问题即可。
2. 将公钥档案数据上传到服务器上
那如何上传呢?最简单的方法当然就是使用 scp 嘛
1 | $ scp ~/.ssh/id_rsa.pub root@192.168.100.254:~ |
3. 将公钥放置服务器端的正确目录与文件名
还记得 sshd_config 里面谈到的 AuthorizedKeysFile 这个设定值吧?该设定值就是在指定公钥数据应该要放置的文件名啰!所以,我们必须要到服务器端的 dmtsai 这个用户身份下,将刚刚上传的 id_rsa.pub 数据附加到 authorized_keys 这个档案内才行。作法有点像这样
1 | # 1. 建立 ~/.ssh 档案,注意权限需要为 700 喔! |
接下来在用 ssh 登陆下就不再需要密码了
