您的位置:首页 > 运维架构 > Linux

Linux ssh 安装 及 常用命令

2015-09-25 09:50 381 查看
1.什么是ssh?
ssh全称Secure SHell,顾名思义意思是说更安全的shell。ssh是一种远程登录和远程执行命令的工具,实现了对远程执行命令的加密。防止由于网络监听而出现的密码泄漏,对系统构成威胁。
ssh协议目前有ssh1和ssh2,ssh2协议兼容ssh1。使用该协议的软件主要有,OpenSSH和SSH Communications Security Corporation公司的ssh。前者是OpenBSD组织开发的一款免费的SSH软件,后者是商业软件,所以在多数免费的类Unix系统中一帮使用的都是OpenSSH。另外,OpenSSH和SSH Communications的登录公钥和私钥的格式是不同的,如果想要用SSH产生的私钥或者公钥登录OpenSSH需要进行格式的转换。
2.sshd—配置
(1)首先查看Linux是否安装了SSH:ssh -V
如果输出类似下面则说明已经安装了OpenSSH。
OpenSSH_6.2p2, OSSLShim 0.9.8r 8 Dec 2011
(2)ubuntu上默认只安装了openssh-client, 需要继续安装ssh-server
sudo apt-get install opens-server
安装ssh-client
sudo apt-get install opens-client
mac默认安装了client和server,不需要进行安装。
(3)查看sshserver是否启动
执行命令:ps -e | grep sshd
输出:910 ttys000    0:00.00 grep sshd
输出如上,说明服务正常启动
否则使用命令启动服务:service ssh start
mac上启动服务需要在preference中设置允许远程登录:如下图所示:



(4)修改端口号
ssh默认的服务端口号为22,我们可以根据自己的需要进行修改:
mac: vim /etc/sshd_config
ubuntu:vim /etc/ssh/sshd_config
修改其中的Port后面的参数,完成后重启sshd服务service sushi restart
3.远程登录
远程登录的前提是目标机器的ssh服务已经开启,并且需要知道对方的ip;
登录常用格式:ssh [-l login_name] [-p port] [user@]hostname
(1)不指定用户:ssh 192.168.0.11
(2)指定用户:ssh -l root 192.168.0.11
                         ssh root@192.168.0.11
(3)指定端口:ssh -l root -p 222 192.168.0.11
                         ssh -p 222 root@192.168.0.11
4.使用ssh生成密匙
使用ssh-keygen生成公钥/私钥对:ssh-keygen -t rsa -P ''
-P 表示密码,-P ‘'就表示空密码,也可以不用-P参数,在生成过程中要求输入密码时按回车就可以了。另有一些详细的参数,可以使用man ssh-keygen查看。
执行这个命令会在/home用户目录下生成.ssh目录,.ssh下油id_rsa(私钥)和id_rsa.pub(公钥)
5.使用 ssh key远程登录
将客户端机器生成rsa.pub(公钥)内容复制到服务器端下用户目录下的.ssh/authorized_keys文件里:
如果想无密码登录root,就复制到/root/.ssh/authorized_keys
想无密码登录其他用户就复制到/home/usename/.ssh/authorized_keys
复制方法,使用scp:
客户端机器scp.ssh/id_rsa.pubroot@192.168.1.11:tmp/id_rsa.pub
服务器端机器:cat /tmp/id_rsa.pub >> .ssh/authorized_keys
authorized_key的权限时600,所以,chmod 600 .ssh/authoeized_keys
配置完成!
6.使用scp传送文件
(1)获取服务器上的文件
命令:scp -P 2222 root@192.168.1.11:/home/username/tmp/play.tar.gz /home/username/play.tar.gz
端口默认是22,如果没有更改过则不需要加-P参数。
IP后面的表示要获取的服务器上的文件的路径和文件名,最后是保存到本地的文件的路径和文件名。
(2)获取远程服务器上的目录
命令:scp -P 2222 -r root@192.168.1.11:/home/username/tmp/play/ /home/username/play/
将服务器上的play目录复制到客户端机器上,-r表示递归复制。
(3)将本地文件上传到服务器
命令:scp -P 2222 
/home/username/play.tar.gz
root@192.168.1.11:/home/username/tmp/play.tar.gz
对照(1)应该很好理解。
(4)将本地目录上传到服务器
命令:scp -P 2222 -r 
/home/username/play/
root@192.168.1.11:/home/username/tmp/play/ 
(5)其他可选参数
-v 显示进度
-c 使用压缩选项
-4 强行使用IPV4地址
-6 强行使用IPV6地址
总结:这里写的还是不够详细,之后会写出详细的测试过程。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  ssh 远程登录