我已经创建了一个实例及其名为demo.pem
的pem文件,
但是出于安全考虑,我必须将旧的demo.pem
文件更改为demos.pem
实例。
我不想创建用于更改pem文件的新实例 =>可以吗? |救命?
答案 0 :(得分:4)
值得了解密钥对的工作原理...
使用密钥对登录Linux时,您指定用户名和密钥对,例如:
var MongoClient = require('mongodb').MongoClient;
var mongoData = require('./mongoData');
var exports = module.exports = {};
var dbName = 'checklist';
MongoClient.connect(mongoData.ConString, {
useNewUrlParser: true
}, function(err, db) {
if (err) throw err;
for (var key in mongoData.Customers) {
if (!existsInDatabase(mongoData.Customers[key], 'Customers')) {
db.db(dbName).collection('Customers').insertOne(mongoData.Customers[key], function(err, res) {
if (err) throw err;
console.log('1 document inserted');
db.close();
});
}
}
for (var key in mongoData.Categorys) {
if (!existsInDatabase(mongoData.Customers[key], 'Customers')) {
db.db(dbName).collection('Categorys').insertOne(mongoData.Categorys[key], function(err, res) {
if (err) throw err;
console.log('1 document inserted');
db.close();
});
}
}
});
function existsInDatabase(obj, collection) {
var result = false;
MongoClient.connect(mongoData.ConString, {
useNewUrlParser: true
}, function(err, db) {
db.db(dbName).collection(collection).find({}).forEach(function(doc) {
if (doc.id == obj.id) {
result = true;
}
}, function(err) {
console.log(err);
});
});
return result;
}
然后,Linux查找属于该用户的ssh -i demo.pem ec2-user@54.11.22.33
文件,例如:
.ssh/authorized_keys
如果在该文件中查找与用于登录的私钥匹配的公钥。然后,它会执行神奇的密钥对操作,并确定是否允许该人登录。
因此,要使用新的密钥对启用实例登录:
/home/users/ec2-user/.ssh/authorized_keys
文件中该文件中可以有多个密钥,这些密钥允许通过任何授权的密钥对登录。
答案 1 :(得分:1)
chmod 400 yourNewPemName.pem
ssh-keygen -y -f yourNewPemName.pem > yourNewPemName.pub
cd ~ / .ssh
authorized_keys
文件的内容