Linux常用命令和服务

命令和服务整理

Posted by Sun Jianjiao on October 1, 2010

1 免密码访问ssh远程linux

1.1 生成私钥文件

在客户端终端下输入以下命令

1
ssh-keygen -t rsa

每次执行 ssh-keygen -t rsa 产生的私钥文件都会不同

如果文件”~/.ssh/id_rsa”存在,会提示是否覆盖该文件,此时可选择”n”不覆盖该文件而使用已有的id_rsa文件

如果选择”y”则会重新生成”~/.ssh/id_rsa”文件。接下来会提示输入passphrase,回车确定使用空的passphrase,再次回车确认(这里也可以输出passphrase,相当于ssh时登录的密码)。然后会重新生成id_rsa文件和id_rsa.pub文件(在~/.ssh目录下)

1.2 拷贝id_rsa.pub文件到远程服务器

在客户端执行:

1
scp ~/.ssh/id_rsa.pub user-name@target-server-ip:~

将生成的id_rsa.pub文件拷贝到远程服务器的家目录下

1.3 将公钥追加到授权KEY里面

服务器终端下输入下面的命令:

1
cat ~/id_rsa.pub >> ~/.ssh/authorized_keys

将客户端机器上的”id_rsa.pub”文件内容追加到”~/.ssh/authorized_keys”文件中。

1.4 设置authorized_keys权限

1
chmod 600 ~/.ssh/authorized_keys

1.5 测试是否配置生效

1
2
3
ssh user-name@target-server-ip
或者
scp ~/file-name user-name@target-server-ip:~

此时不需要再输入密码就可以访问远程服务器

2. Mysql 忘记root密码

2.1 Mysql 8.0

本文的操作系统是ubuntu16.04, mysql是8.0的修改方法,不适合5.x版本

2.1.1 在[mysqld]后加上skip-grant-tables

sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf

1
2
3
4
5
6
7
[mysqld]
pid-file	= /var/run/mysqld/mysqld.pid
socket		= /var/run/mysqld/mysqld.sock
datadir		= /var/lib/mysql
log-error	= /var/log/mysql/error.log

skip-grant-tables

2.1.2 重启mysql

1
sudo service mysql restart

2.1.2 修改密码为空

mysql -u root -p                                //提示输入密码时直接敲回车。

use mysql                                       //选择数据库

update user set authentication_string = '' where user = 'root'; //将密码置空

quit                                           //退出

2.1.3 去除免密码登陆

删掉步骤1的语句:  skip-grant-tables

重启服务:  service mysqld restart

2.1.4 修改密码


mysql -u root -p  //提示输入密码时直接敲回车,刚刚已经将密码置空了

ALTER USER 'root'@'localhost' IDENTIFIED BY '$your-password';

skip-grant-tables模式进行ALTER操作会报错,所以需要将密码置空,再修改密码。