一、用xshell远程连接linux服务器时对服务器有什么要求
首先要能ping通linux服务器,然后linux服务器要开ssh服务,linux不需要安装就有这个服务的。下面是Linux的ssh的设置方法:
首先要修改ssh的配置文件sshd_config,输入命令:
vi /etc/ssh/sshd_config
2. 在这个文件中,将PermitRootLogin without-password这一行修改为PermitRootLogin yes,这一行的意思是“允许root用户用ssh登录”。
再去掉#PasswordAuthentication no这一行的注释符号#,并把no改为yes,表示用ssh登录时需要密码认证。
3. 修改完配置文件后就可以启动SSH服务了,启动命令为:/etc/init.d/ssh start
4. 如果不想每次启动linux后都要启动ssh服务的话,需要设置ssh开机自启动,命令是:
update-rc.d ssh enable或者
chkconfig ssh on
二、在LINUX系统下,如何使用SHell脚本,SSH登陆上路由器
1.登陆linux系统,打开终端命令。输入 rpm -qa |grep ssh 查找当前系统是否已经安装
2.如果没有安装SSH软件包,可以通过yum 或rpm安装包进行安装
3、安装好了之后,就开启ssh服务。Ssh服务一般叫做 SSHD
4、命令行输入 service sshd start 可以启动 或者使用 /etc/init.d/sshd start
5、输入:ssh 账号@IP地址即可。
比如:ssh oracle@192.168.10.13
然后按照提示输入密码. 一切无误则进入该远程主机.
首先你用ssh-keygen生成公钥/私钥对,拷贝到路由器上。这样就可以免密码登录。
然后你写个脚本,用here文档来登录路由器,并进行操作。
ssh 用户名@IP <<SSH
#这里写你需要的操作
SSH
三、如何让远程客户端连接上mysql
1、 停止mysql的服务。
2、 进入命令窗口,然后进入MySQL的安装目录,比如安装目录是c:\mysql,进入c:\mysql\bin。
3、 进入mysql数据库服务器。
c:\mysql\bin>mysql –u root –p hkgt123。
4、 选中数据库mysql :use mysql。
5、 查询mysql数据库中的用户:Select host,user,password from mysql。
6、 授权给root用户可以从任何主机使用密码为’hkgt123’登录MYSQL数据库:
GRANT ALL PRIVILEGES ON *.* TO root@’%’ IDENTIFIED BY ‘hkgt123’ WITH GRANT OPTION。
7、 提交:commit。
8、 刷新权限:flush privileges。
四、求教如何远程ssh另一台位于路由器下的linux电脑
分两种情况:
1. 你的电脑也位于路由器下,则可直接进行ssh
2. 你的电脑不在路由器下,即通过路由器WAN口进行ssh登陆,这时需要在路由器上设置端口转发功能,将来自路由器WAN口指定的端口访问,转发到位于路由器下的Linux电脑,这时,外部电脑通过ssh路由器的WAN口地址,即可ssh到位于路由器下的Linux电脑
五、如何配置ssh免密码登录
1. 基本用法
1.1 基本说明
ssh key是一对密钥文件,一个public key文件是要给放到多端让其加到信任列表的,一个private key是留存本地,在鉴权的时候才需要。
下面的详细说明来自 SSH 安全性和配置入门:
为了帮助验证身份,SSH 有一个密钥管理功能和相关的代理。当配置为公钥身份验证时,您的密钥证明您在远程 SSH 主机上的身份。一个基于 SSH 的身份包括两个部分:一个公钥和一个私钥。私有 SSH 密钥是用于出站 SSH 连接的用户身份,且应当保密。当用户发起一个 SSH 或 SCP 会话到远程主机或服务器时,他或她被认为是 SSH 客户端。通过一个数学算法,一个私钥如同您的电子身份证;公钥如同您向其出示身份证的锁或门机制。您的私钥说,“这真的是 Fred Smythe”;公钥说,“是的,您确实是真正的 Fred Smythe;您已通过身份验证:请进入。”
您的公钥代表您允许通过您的大门或锁进入的人。公钥需要保密;它们不能用于泄漏一个系统或对系统进行未经授权的访问。在一个 Linux 或 UNIX 系统上,这些私有和公共密钥对存储在 ASCII 文本系统中;在 Windows 系统上,一些程序将密钥对存储为文本文件,一些存储在 Windows 注册表中。
1.2 生成密钥对
[fsmythe@example.com ~]$ /usr/bin/ssh-keygen -t dsa
Generating public/private dsa key pair.
Enter file in which to save the key (/home/fsmythe/.ssh/id_dsa):
Enter passphrase (empty for no passphrase): ****** (Enter 'mypassword')
Enter same passphrase again: ****** (Enter 'mypassword')
Your identification has been saved in /home/fsmythe/.ssh/id_dsa.
Your public key has been saved in /home/fsmythe/.ssh/id_dsa.pub.
The key fingerprint is:
33:af:35:cd:58:9c:11:91:0f:4a:0c:3a:d8:1f:0e:e6 fsmythe@example.com
[fsmythe@example.com ~]$
密钥有多种类型(DSA, RSA, ECDSA, ED25519等),上面用的是DSA,不指定类型时ssh-keygen默认类型是RSA.
我们可以生成多个密钥,每个保存在不同的文件中.本例中生成的密钥保存在 /home/fsmythe/.ssh/id_dsa 和 /home/fsmythe/.ssh/id_dsa.pub中(前者是私钥,后者是公钥)
Passphrase也是一种密码,是在程序读取你的私钥文件时要用到的(即你的私钥文件被加密保存了).如果你想完全自动登录对端(不想交互式输入任何东西)那么这里可以不输入passphrase(直接回车),不过从安全性上面来说并不是太好(更好的办法是采用 ssh-agent 来加载你的密钥(加载时输入passphrase),然后在后面使用过程中就是 ssh-agent 与对端交互,不再需要输入passphrase了)
1.3 配置自动登录
要用这个ssh key自动登录另一个机器的话,需要在本机执行这个:
ssh-copy-id -i ~/.ssh/id_rsa_xxx.pub johndoe@210.32.142.88
(当然,这一次还是要输入密码的.如果你生成密钥时输入了passphrase的话,这里还得输入passphrase)
这样下次就可以直接用 ssh johndoe@210.32.142.88 来直接登录对端机器了.当然 scp johndoe@210.32.142.88:/home/johndoe/.bashrc .也不会再询问你密码,rsync -av johndoe@210.32.142.88:/h[[ome/johndoe/Downloads]] . 也不会.
1.4 参考文档:
如何在 CentOS / RHEL 上设置 SSH 免密码登录 (其实内容并不只是适用于 RHEL/CentOS,甚至连 RHEL/CentOS 上典型的selinux的问题(见本文后面的补充说明)都没有提到)
SSH 安全性和配置入门: ( 跟我们这里相关的是中间"SSH 的私钥和公钥对" 和 "配置公私 SSH 密钥对的步骤"这两节 )
2. 各种细节问题
2.1 目录权限问题导致ssh key不被接受
如果你自动登录不成功,在屏幕上见到如下字样:
$ ssh admin@210.32.142.88
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: UNPROTECTED PRIVATE KEY FILE! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0755 for '/home/johndoe/.ssh/id_rsa' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
bad permissions: ignore key: /home/johndoe/.ssh/id_rsa
admin@210.32.142.88's password:
这里的文字已经把原因说得比较清楚了,是 /home/johndoe/.ssh/id_rsa 的权限设置得太宽泛,ssh认为密钥文件可以被其它人读取/拷贝,所以拒绝使用它.解决办法是去除其它人的读写权限(chmod go-rw ~/.ssh/id_rsa )--当然,前提是你确认这个文件没有被被人盗用(或者你不在乎这个).
2.2 RHEL/CentOS的selinux干扰导致登录不成功
对RHEL6服务器配置ssh key自动登录死活不成功,ubuntu就一点问题没有,结果是SELinux在搞鬼,在你排除了其它明显的原因后可以试试这一句(在对端上(即RHEL/CentOS上)执行):
restorecon -Rv /home/myname/.ssh
参考: Can't get SSH public key authentication to work - Server Fault
2.3 没有ssh-copy-id时如何手工设置
也许你会好奇 ssh-copy-id 到底干了什么,或者你的系统上没有这个工具(后面我们将putty key加到openssl信任列表时就会需要了解这个).
其实挺简单,它只是将你的public key 加了对端的 ~/.ssh/authorized_keys 这个文件中(每条密钥一行).
不过这里也有一个细节: 对端的 ~/.ssh 目录和 ~/.ssh/authorized_keys 文件均不能是其它人可以写入的(即为了防止其它人写这个文件来达到登录当前帐号).
所以 ssh-copy-id 的比较完整的手工设置方法是:
$ ssh username@www-03.nixcraft.in umask 077; mkdir .ssh
$ cat $HOME/.ssh/id_rsa.pub | ssh username@www-03.nixcraft.in cat >> .ssh/authorized_keys
参考: Install / Append SSH Key In A Remote Linux / UNIX Servers Authorized_keys
2.4 多个服务器需要用不同的ssh key登录
前面说过,我们可以生成多个密钥,每个保存在不同的文件中.ssh-keygen 会询问你保存的位置,你也可以对密钥文件改名(只要两个文件的基本名一致即可).
登录某个服务器时如何指定具体的密钥呢?
ssh -i ~/.ssh/id_rsa_inner admin@210.32.151.66
scp -i [[~/.ssh/id_rsa_inner]] admin@210.32.151.66:/home/admin/.bashrc .
ssh-copy-i -i [[~/.ssh/id_rsa_inner]] admin@210.32.151.66
如果你觉得这样比较繁琐,或者像rsync这样的工具并没有提供类似 -i 选项让你指定密钥文件,那么可以配置 ~/.ssh/config 文件来解决
Host 210.32.151.66
IdentityFile ~/.ssh/id_rsa_inner
UserName admin
Host bbs1
HostName 210.32.142.88
IdentityFile ~/.ssh/id_rsa_bbs
Host 10.93.*
IdentityFile ~/.ssh/id_rsa_group
这种情况下,登录不同的地址就会自动采用不同的密钥了.