Ronan Blog

罗华东的博客 | 向前每多走一步,热爱和勇气就会多一分。

创建以及管理 SSH 密钥对

2024-09-12 1 min read Docs Ronan

1.创建密钥对(此方法适用于从未创建过密钥对的本地主机)

在终端输入以下命令:

ssh-keygen

之后一路回车,不出意外的话,看到以下画面,密钥(包含私钥和公钥,公钥以 .pub 结尾)就创建成功了 ssh-kegen

对于 linux 和类 linux 系统,该密钥存放于 ~/.ssh/ ,可以通过 ls ~/.ssh 查看。

2.创建多个密钥对

有时候可能会需要多个密钥对,但是又不想影响到之前已创建的密钥对

创建 ed25519 类型的密钥对(最推荐)

ssh-keygen -t ed25519 -C "这里写注释" -f ~/.ssh/id_ed25519_new_name

ssh-keygen:这是一个用于生成、管理和转换 SSH 密钥的命令行工具。 -t ed25519:指定要生成的密钥类型为 ed25519。这种类型的密钥被认为更安全,并且通常生成更快。 -C "这里写注释":这是一个注释(通常使用邮箱,但是我不喜欢),用于标识这个密钥的用途。 -f ~/.ssh/id_ed25519_new_name:指定生成的密钥文件的存储路径和名称。在这里,密钥会被保存为 ~/.ssh/id_ed25519_new_name,私钥为 id_ed25519_new_name,而公钥则为 id_ed25519_new_name.pub。

或者可以创建 rsa 类型的密钥对

ssh-keygen -t rsa -b 4096 -C "用于163账号的 github" -f ~/.ssh/id_rsa_new

2.1创建带有密码的密钥对

通过上面的命令创建密钥对时,一路回车不要过快,系统会提示输入一个密码。可以输入一个强密码,确保它是安全的。再次输入相同的密码以确认:

Enter passphrase (empty for no passphrase):
Enter same passphrase again:

注意:在输入密码时,终端不会显示任何字符(包括星号),这是正常现象。

如果你忘记了 SSH 密钥的密码,将无法使用该密钥进行身份验证,因为 SSH 并没有提供恢复密码的功能。最简单的解决方案是生成一个新的 SSH 密钥对。

Continue reading

「图床」上传脚本,基于 cloudflare R2 对象存储

2024-09-12 1 min read Docs Ronan

使用之前需要通过 pip install boto3 安装 boto3 库。

使用方法:usage: python imgs.py input_file

7-10 行填入相应信息并将代码保存为 imgs.py:

  • account_id:账户 id

    cloudflare_R2_account_id

  • access_key_id:s3客户端访问密钥

  • secret_access_key:s3客户端机密访问密钥

    cloudflare_R2_S3_API_Token

  • bucket_name:R2 存储桶名称

    cloudflare_R2_bucket_name

可以直接运行脚本或者将脚本打包为应用程序

import boto3
import os
from botocore.exceptions import ClientError
import argparse

# Cloudflare R2 配置
account_id = "" # 这里填入账户 id
access_key_id = "" # 这里填写 S3 客户端的‘访问密钥’
secret_access_key = "" #这里填写 S3 客户端的‘机密访问密钥’
bucket_name = "" # 这里填入你要上传文件到哪个 R2 存储桶的名称
endpoint_url = f"https://{account_id}.r2.cloudflarestorage.com"

# 创建 S3 客户端
s3 = boto3.client('s3',
                endpoint_url=endpoint_url,
                aws_access_key_id=access_key_id,
                aws_secret_access_key=secret_access_key)

def upload_file(file_path, object_name=None):
    """
    上传文件到 Cloudflare R2 存储桶

    :param file_path: 要上传的本地文件路径
    :param object_name: 在 R2 中的对象名称,如果不指定则使用文件名
    :return: 如果上传成功返回 True,否则返回 False
    """
    if object_name is None:
        object_name = os.path.basename(file_path)

    try:
        s3.upload_file(file_path, bucket_name, object_name)
        print(f"File {file_path} uploaded successfully as {object_name} \n\nhttps://imgs.ronan.us.kg/{object_name}")
        return True
    except ClientError as e:
        print(f"Error uploading file {file_path}: {e}")
        return False

def main():
    parser = argparse.ArgumentParser(description="传入本地或网络图片路径,即可上传到 cloudflare R2 对象存储桶")
    parser.add_argument("local_file_path", help="本地图片路径")

    args = parser.parse_args()

    upload_file(args.local_file_path)

if __name__=="__main__":
    main()

什么是价值观?

2024-09-03 1 min read Docs Ronan

注意:价值观指的是人们认为较有价值的观念(常常不曾言明)。它们树立了一定的行为准则,我们据此来衡量人类行为的品质高下。

你在列举价值观的时候是否遇到了困难?价值观就是我们自己所认可的行为准则,我们希望他人的言行能与之相一致。当我们期望政治代表们能“实话实说”时,我们向他们和我们自身暗示的信息就是:诚实是我们最重视的价值观之一.你可以问间自己,你希望自己的朋友都是些什么样的人,你希望自己的孩子被培养出什么样的行为准则.对诸如此类问题的求解可以帮助你拓宽对价值观的理解.

–《学会提问》

Older posts Newer posts