一.linux开启ssh server
1.shell$sudo apt-get install ssh
2.修改/etc/ssh/sshd_config中PasswordAuthentication yes
/etc/init.d/ssh restart
此时就可以远程访问了:
local$ssh "shell's ip"
问题:
1.Linux防火墙设置导致无法ssh。
临时解决方法是关闭防火墙
2.REMOTE HOST IDENTIFICATION HAS CHANGED!
二.linux配置安全密钥访问(避免输入密码)
linux平台:
1.shell$ ssh-keygen 客户机产生id_rsa和id_rsa.pub,客户机保留私钥
2.shell$scp id_rsa.pub user@192.168.188:/home/antique/.ssh/ 将公钥复制到目标服务器上
3.target$cat mykey.pub >> $HOME/.ssh/authorized_keys 将公钥添加至目标服务器keys
4.target$ /etc/init.d/ssh restart 重启目标服务器ssh
windows平台:
1.xming:windows上的x-client,可以远程运行linux上的图形化程序,如firefox,gvim,nautilus(远程桌面)。
putty:connection=>SSH=>X11要勾选上。
2.psftp是命令行下载文件,不是很好用,使用filezilla FTP(配置SSH)下载更方便。
3.ssh密钥登录:
linux:执行命令ssh-keygen,不断yes回车。将id_rsa.pub改名为id_authorized_keys。(这是公钥)
windows:将~/.ssh/id_rsa(私钥)复制到windows上(文本或文件都可以)。启动PUTTYGEN.EXE,导入id_rsa。转换保存为ppk格式文件。
putty:启动,connection=>SSH=>Auth=>导入ppk格式文件。OVER。
4.访问内网或穿越多台主机的SSH访问
Client -> Server A -> Server B -> Server C
ssh -t user@ServerA ssh -t user@ServerB ssh user@ServerC
Client -> Server A(port:1234)-> Server B(port:3456)-> Server C(port:5678)
ssh -t user@ServerA -p 1234 ssh -t user@ServerB -p 3456 ssh user@ServerC -p 5678
图例:
=== ServerA(网关) =>ServerB(内网)==>====>
|-------| ||
|client |(外网)========XX无法直接访问XX=====ServerC(内网)
|--------|
传输文件:
拷贝过去
scp mydial antique@X.X.X.X:/home/antique
与putty无关:linux之间的SSH登录
假设Linux1访问Linux2(192.168.1.188)
Linux1:ssh-keygen生成公钥与密钥
复制Linux1生成的公钥到Linux2: scp id_rsa.pub username@192.168.1.188:mykey.pub
Linux2:cat mykey.pub >> $HOME/.ssh/authorized_keys
重启对应服务:/etc/rc.d/sshd restart
over.
参考:http://wiki.chinaunix.net/index.php?title=Ssh_rsa&variant=zh-tw