2019年11月

SSH

SSH keys

SSH key 可以让你在你的电脑和Code服务器之间建立安全的加密连接。 先执行以下语句来判断是否已经存在本地公钥:

cat ~/.ssh/id_rsa.pub

如果你看到一长串以 ssh-rsa或 ssh-dsa开头的字符串, 你可以跳过 ssh-keygen的步骤。

提示: 最好的情况是一个密码对应一个ssh key,但是那不是必须的。你完全可以跳过创建密码这个步骤。请记住设置的密码并不能被修改或获取。

你可以按如下命令来生成ssh key:

ssh-keygen -t rsa -C "example@xxx.com"

这个指令会要求你提供一个位置和文件名去存放键值对和密码,你可以点击Enter键去使用默认值。

用以下命令获取你生成的公钥:

cat ~/.ssh/id_rsa.pub

复制这个公钥放到你的个人设置中的SSH/My SSH Keys下,请完整拷贝从ssh-开始直到你的用户名和主机名为止的内容。

如果打算拷贝你的公钥到你的粘贴板下,请参考你的操作系统使用以下的命令:

Windows:

clip < ~/.ssh/id_rsa.pub

Mac:

pbcopy < ~/.ssh/id_rsa.pub

GNU/Linux (requires xclip):

xclip -sel clip < ~/.ssh/id_rsa.pub

Applications

Eclipse

如何在Eclipse中添加 ssh key:
https://wiki.eclipse.org/EGit/User_Guide#Eclipse_SSH_Configuration
Tip: Non-default OpenSSH key file names or locations

如果,不管你有什么理由,当你决定去用一个非默认的位置或文件名去存放你的ssh key。你必须配置好你的ssh客户端以找到你的ssh私钥去连接Code服务器,对于OpenSSH客户端,这个通常是在~/.ssh/config类似的位置配置的:

Our company's internal GitLab server

Host my-git.company.com
RSAAuthentication yes
IdentityFile ~/my-ssh-key-directory/company-com-private-key-filename

  1. 修改PostgreSQL数据库默认用户postgres的密码

PostgreSQL数据库创建一个postgres用户作为数据库的管理员,密码随机,所以需要修改密码,方式如下:

步骤一:登录PostgreSQL

sudo -u postgres psql

步骤二:修改登录PostgreSQL密码

ALTER USER postgres WITH PASSWORD 'postgres';

注:

密码postgres要用引号引起来
命令最后有分号

步骤三:退出PostgreSQL客户端

  1. 修改linux系统postgres用户的密码

PostgreSQL会创建一个默认的linux用户postgres,修改该用户密码的方法如下:

步骤一:删除用户postgres的密码

sudo  passwd -d postgres

步骤二:设置用户postgres的密码

sudo -u postgres passwd

系统提示输入新的密码

Enter new UNIX password:

Retype new UNIX password:

passwd: password updated successfully

git branch -r | grep -v '\->' | while read remote; do git branch --track "${remote#origin/}" "$remote"; done
git fetch --all
git pull --all

推送镜像

git push --mirror <path>

转载链接

这两天在安装一脚本的时候wget下载总是出现ERROR: The certificate of `github.com' is not trusted.的错误提示,这是提示你该网站的证书不被信任,解决这种问题的方法有两种。

1.临时解决

运行wget等命令时在后面加上--no-check-certificate就行了。

2.完全解决,安装 ca-certificates 包

apt-get install ca-certificates

安装完证书包后就可以顺畅运行脚本了。

华为云 - 转换镜像格式

操作场景

本节操作指导您使用qemu-img工具转换镜像格式。

当前云平台支持导入vhd、vmdk、qcow2、raw、vhdx、qcow、vdi、qed、zvhd或zvhd2等格式镜像文件创建私有镜像。推荐使用qcow2格式的镜像文件。如果您需要导入其他格式的镜像,请先使用qemu-img工具转换镜像的格式后再导入。导入的镜像文件必须为单一的镜像文件,例如pre-allocated格式镜像依赖2个文件:"xxxx.vmdk" 和"xxxx-flat.vmdk",这两种格式的镜像文件不能直接导入到云平台,需提前转换成通用的vmdk或qcow2格式才能导入。

根据您本地服务器的操作系统不同,您可以采用不同的方法安装qemu-img并转换镜像文件的格式。

qemu-img镜像格式转换工具支持vhd、vmdk、qcow2、raw、vhdx、qcow、vdi或qed等社区格式的镜像的相互转换,请您根据实际需要选择镜像转换的格式。
注意:

zvhd和zvhd2是云服务内部自研格式,qemu-img工具无法识别这两种格式的镜像文件。
vhd格式镜像在执行命令转换格式时请使用vpc代替,否则可能造成qemu-img工具无法识别镜像格式。

例如,转换CentOS 6.9的vhd格式镜像为qcow2格式镜像,请执行如下命令:

qemu-img convert -p -f vpc -O qcow2 centos6.9.vhd centos6.9.qcow2

Windows操作系统

安装qemu-img。
    下载qemu-img安装包至本地:https://qemu.weilnetz.de/w64/。
    双击setup文件安装qemu-img,以下操作以安装路径为“D:\Program Files\qemu”为例。
配置环境变量。
    选择“开始 > 计算机”,右键单击“属性”。
    单击“高级系统设置”。
    在“系统属性”对话框里,单击“高级 > 环境变量"。
    在环境变量对话框里,在系统变量部分找到Path,并单击“编辑”。在“变量值”里,添加“D:\Program Files\qemu”,不同的变量值之间以“;”分隔。
    说明:

    如果没有Path变量请新建,并补充Path的变量值为“D:\Program Files\qemu”。
    单击“确定”,保存修改。
验证安装成功。

单击“开始 > 运行”,输入“cmd”后按回车键,在“cmd”窗口输入qemu-img --help,如回显信息中出现qemu-img工具的版本信息,即表示安装成功。
转换镜像格式。
    在“cmd”窗口输入如下命令切换文件目录,以安装目录为“D:\Program Files\qemu”为例。

    d:

    cd D:\Program Files\qemu
    执行如下命令转换镜像文件格式,以转换vmdk格式为qcow2格式的镜像为例。

    qemu-img convert -p -f vmdk -O qcow2 centos6.9-flat.vmdk centos6.9.qcow2

    上述命令中各参数对应的说明如下:
        -p:表示镜像转换的进度。
        -f后面为源镜像格式。
        -O(必须是大写)后面的参数由如下3个部分组成:转换出来的镜像格式 + 源镜像文件名称 + 目标文件名称。

    转换完成后,目标文件会出现在源镜像文件所在的目录下。

    回显信息如下所示:

    # qemu-img convert -p -f vmdk -O qcow2 centos6.9-flat.vmdk centos6.9.qcow2
        (100.00/100%)

执行如下命令,查询转换后的qcow2格式镜像文件的详细信息。

qemu-img info centos6.9.qcow2

回显信息如下所示:

qemu-img info centos6.9.qcow2

image: centos6.9.qcow2
file format: qcow2
virtual size: 1.0G (1073741824 bytes)
disk size: 200K
cluster_size: 65536
Format specific information:

compat: 1.1
lazy refcounts: false

Linux操作系统

安装qemu-img。
    Ubuntu、Debian系列操作系统,请执行如下命令:

    apt install qemu-img
    CentOS、Red Hat、Oracle系列操作系统,请执行如下命令:

    yum install qemu-img
    SUSE、OpenSUSE系列操作系统,请执行如下命令:

    zypper install qemu-img
执行如下命令,验证安装成功。

qemu-img -v

如回显信息中出现qemu-img工具的版本信息和帮助手册,即表示安装成功。以CentOS 7为例,回显信息如下所示:

[root@CentOS7 ~]# qemu-img -v
qemu-img version 1.5.3, Copyright (c) 2004-2008 Fabrice Bellard
usage: qemu-img command [command options]
QEMU disk image utility

Command syntax:
  check [-q] [-f fmt] [--output=ofmt] [-r [leaks | all]] [-T src_cache] filename
  create [-q] [-f fmt] [-o options] filename [size]
  commit [-q] [-f fmt] [-t cache] filename
  compare [-f fmt] [-F fmt] [-T src_cach

转换镜像格式,以CentOS 7操作系统中转换vmdk格式为qcow2格式的镜像为例。

执行如下命令转换镜像文件格式。

qemu-img convert -p -f vmdk -O qcow2 centos6.9-flat.vmdk centos6.9.qcow2

上述命令中各参数对应的说明如下:
    -p标识转换的进度条。
    -f后面为源镜像格式。
    -O(必须是大写)后面的参数为转换出来的镜像格式 + 源镜像文件名称 + 目标文件名称。

转换完成后,目标文件会出现在源镜像文件所在的目录下。

回显信息如下所示:

[root@CentOS7 home]# qemu-img convert -p -f vmdk -O qcow2 centos6.9-flat.vmdk centos6.9.qcow2
    (100.00/100%)

执行如下命令,查询转换后的qcow2格式镜像文件的详细信息。

qemu-img info centos6.9.qcow2

回显信息如下所示:

[root@CentOS7 home]# qemu-img info centos6.9.qcow2
image: centos6.9.qcow2
file format: qcow2
virtual size: 1.0G (1073741824 bytes)
disk size: 200K
cluster_size: 65536
Format specific information:

compat: 1.1
lazy refcounts: false

典型应用举例

用户从VMware平台导出一个pre-allocated格式的镜像文件(pre-allocated格式是VMDK monolithicFlat子格式类型),pre-allocated格式镜像依赖2个文件:“xxxx.vmdk”和“xxxx-flat.vmdk”,这两种格式的镜像文件不能直接导入到云平台,需提前转换成通用的vmdk或qcow2格式才能导入。

以下以镜像文件格式为centos6.9-64bit-flat.vmdk和centos6.9-64bit.vmdk为例。将centos6.9-64bit-flat.vmdk和centos6.9-64bit.vmdk放在同一个目录下,通过qemu-img进行镜像格式转换。

执行如下命令,查询镜像文件的详细信息。

ls -lh centos6.9-64bit*

qemu-img info centos6.9-64bit.vmdk

回显信息如下所示:

[root@CentOS7 tmp]# ls -lh centos6.9-64bit*
-rw-r--r--. 1 root root 10G Jun 13 05:30 centos6.9-64bit-flat.vmdk
-rw-r--r--. 1 root root 327 Jun 13 05:30 centos6.9-64bit.vmdk
[root@CentOS7 tmp]# qemu-img info centos6.9-64bit.vmdk
image: centos6.9-64bit.vmdk
file format: vmdk
virtual size: 10G (10737418240 bytes)
disk size: 4.0K
Format specific information:
    cid: 3302005459
    parent cid: 4294967295
    create type: monolithicFlat
    extents:
        [0]:
            virtual size: 10737418240
            filename: centos6.9-64bit-flat.vmdk
            format: FLAT
[root@CentOS7 tmp]# qemu-img info centos6.9-64bit-flat.vmdk
image: centos6.9-64bit-flat.vmdk
file format: raw
virtual size: 10G (10737418240 bytes)
disk size: 0

执行如下命令,查看pre-allocated格式的镜像文件的相关配置信息。

cat centos6.9-64bit.vmdk

回显信息如下所示:

[root@CentOS7 tmp]# cat centos6.9-64bit.vmdk

Disk DescriptorFile

version=1
CID=c4d09ad3
parentCID=ffffffff
createType="monolithicFlat"

Extent description

RW 20971520 FLAT "centos6.9-64bit-flat.vmdk" 0

The Disk Data Base

DDB

ddb.virtualHWVersion = "4"
ddb.geometry.cylinders = "20805"
ddb.geometry.heads = "16"
ddb.geometry.sectors = "63"
ddb.adapterType = "ide"

将centos6.9-64bit-flat.vmdk和centos6.9-64bit.vmdk放在同一个目录下,执行如下命令,通过qemu-img工具转换镜像格式为qcow2格式。

[root@CentOS7 tmp]# qemu-img convert -p -f vmdk -O qcow2 centos6.9-64bit-flat.vmdk centos6.9-64bit.qcow2

(100.00/100%)

执行如下命令,查询转换后的qcow2格式镜像文件的详细信息。

qemu-img info centos6.9-64bit.qcow2

回显信息如下所示:

[root@CentOS7 tmp]# qemu-img info centos6.9-64bit.qcow2
image: centos6.9-64bit.qcow2
file format: qcow2
virtual size: 10G (10737418240 bytes)
disk size: 200K
cluster_size: 65536
Format specific information:

compat: 1.1
lazy refcounts: false