我在名为key.pub
的文件中有一个公钥,内容如下:
ssh-rsa AAAAB...<snip>...t+f klahnakoski
我想用gpg
来加密文件。所需的shell命令序列是什么?
我想这个序列看起来像是:
谢谢!
答案 0 :(得分:1)
RSA密钥只能用于加密一部分密钥长度。例如2048位RSA密钥只能用于加密大约245个字节。
请参阅:
因此,要加密/解密大量数据(文件),您将使用对称密钥,该对称密钥是使用公钥加密的,而不是不是公钥本身。
此外,您不会将对称密钥添加到 public SSH密钥,因为对称密钥是秘密,而SSH公钥不是秘密。对称密钥应添加到 private SSH密钥。
它类似于以下内容:
要转换文件格式,请安装Monkeysphere工具集(Ubuntu)
import gzip
def to_gcs(request):
job_config = bigquery.QueryJobConfig()
gcs_filename = 'filename_{}.csv'
bucket_name = 'bucket_gcs_name'
subfolder = 'subfolder_name'
client = bigquery.Client()
job_config.write_disposition = bigquery.WriteDisposition.WRITE_TRUNCATE
QUERY = "SELECT * FROM `bigquery-public-data.google_analytics_sample.ga_sessions_*` session, UNNEST(hits) AS hits"
query_job = client.query(
QUERY,
location='US',
job_config=job_config)
while not query_job.done():
time.sleep(1)
rows_df = query_job.result().to_dataframe()
storage_client = storage.Client()
storage_client.get_bucket(bucket_name).blob(subfolder+'/'+gcs_filename+'.gz').upload_from_string(rows_df.to_csv(sep='|',index=False,encoding='utf-8',compression='gzip'), content_type='application/octet-stream')
使用pem2openpgp工具将 private 密钥转换为gpg格式。通过管道导入gpg。
sudo apt-get install monkeysphere
编辑密钥中的信任级别。
pem2openpgp userid-ssh@example.com < id_rsa | gpg --import
# Check it's there
gpg --list-secret-keys
添加所需的信任级别(例如,最终)
导入的密钥仅适用于创建证书,不适用于签名或加密。
密钥是RSA密钥,不能用于加密/解密大量数据。如果要这样做,则必须添加对称加密子项。加密时,GPG将使用此子密钥而不是原始的SSH密钥。
gpg --edit-key userid-ssh@example.com
gpg> trust
现在您可以使用基于 SSH密钥的身份进行加密和解密。
gpg> addkey
Please select what kind of key you want:
(3) DSA (sign only)
(4) RSA (sign only)
(5) Elgamal (encrypt only)
(6) RSA (encrypt only)
Your selection? 6
这有什么用?
好吧,使用GPG生成和管理SSH密钥作为身份验证子密钥比使用其他方法更有意义。实际上,它可以集成到SSH中,而不是ssh-agent。
答案 1 :(得分:0)
可能ssh-vault可能会给你一些想法,它遵循PGP的相同原则,并使用公共ssh密钥来加密密码。