Điểm:1

Giải mã GPG: Khóa phiên không hợp lệ/Không đặt biến/Dấu chấm than

lá cờ us

Tôi đang cố giải mã tệp gpg nhưng liên tục gặp phải lỗi sau:

gpg: giải mã không thành công: Khóa phiên không hợp lệ

Sau đó, tôi nhận ra rằng cụm mật khẩu gpg (được đặt bởi một tập lệnh) có dấu chấm than trong đó

cụm mật khẩu = "của tôi! mật khẩu"

Khi cài đặt qua TTY, bash phàn nàn

-bash: !pass: không tìm thấy sự kiện

Khi tôi lặp lại biến, nó không được đặt.

user@host:~$ echo $passphrase

người dùng@máy chủ:~$

Vì vậy, biến không xác định và tôi cho rằng đó là lý do tại sao tôi không thể giải mã tệp của mình.

Tôi đã thử mật khẩu sau đây:

  • mật khẩu của tôi
  • của tôi
  • !vượt qua
  • 'mật khẩu của tôi'
  • -bash: !pass: không tìm thấy sự kiện
  • bash: !pass: không tìm thấy sự kiện
  • -bash:
  • đánh:
  • sự kiện không tìm thấy

Khá chắc chắn rằng tôi vừa học được một bài học rất đau đớn ở đây, nhưng nó đáng để thử.

Bất cứ ai có thể giúp với:

  1. Bash sẽ làm gì với một biến chưa được đặt nếu bạn cố sử dụng nó?
  2. Làm thế nào để một tập lệnh xử lý một biến chưa được đặt?
  3. Có điều gì khác tôi có thể thử thay cho mật khẩu không?
  4. Có mã khoảng trắng ASCII/UTF nào mà tôi có thể thử thay cho mật khẩu không?
FedKad avatar
lá cờ cn
Bạn đã thử chuỗi rỗng (`''`) chưa?
edooze avatar
lá cờ us
Đây là lý do tại sao tôi không chắc chắn 100% biến là vấn đề, tôi đã nhấn enter khi được nhắc và thông báo 'Không có khóa bí mật'. Đủ công bằng. Thật không may, tôi không thể tìm ra cách nào để thay đổi thứ mà nó cho là khóa và nó cứ báo 'không có khóa bí mật' và không nhắc nhập khóa khác.
sancho.s ReinstateMonicaCellio avatar
lá cờ pl
Các đề xuất có phù hợp với bạn không? Xin vui lòng gửi thông tin phản hồi.
Điểm:1
lá cờ pl

Có một vài ý kiến ​​​​đáng chú ý.

  1. "... cụm mật khẩu gpg (được đặt bởi tập lệnh)". Tôi hiểu là bạn đã không viết kịch bản. Xin vui lòng gửi kịch bản.Có bất kỳ hướng dẫn để sử dụng nó?
  2. cụm mật khẩu = "của tôi! mật khẩu". Điều này không có nghĩa là "sử dụng ! như một phần của chuỗi". !vượt qua có nghĩa là "đọc lịch sử và nhận lệnh cuối cùng bắt đầu bằng vượt qua“. Nếu không có lệnh nào trong lịch sử bắt đầu bằng vượt qua, lỗi bash: !pass: không tìm thấy sự kiện được nâng lên, khi bạn đang ở dòng lệnh. Đó là lý do tại sao tôi đoán bạn đã không viết kịch bản. Nó được hình thành cho một trường hợp khi có một số lệnh trong lịch sử bắt đầu bằng vượt qua.
  3. "Khi cài đặt qua TTY (và tôi đoán bạn đã thực hiện cụm mật khẩu = "của tôi! mật khẩu"), bash phàn nàn... Khi tôi lặp lại biến, nó không được đặt". Như đã đề cập ở trên, một lỗi được nêu ra. Nhưng có hai điều nữa xảy ra: 1) Lệnh không được thực thi. Tức là, bạn thậm chí không nhận được "của tôi" (bạn có thể mong đợi nhận được "của tôi" = "của tôi" + chuỗi rỗng) làm giá trị của cụm mật khẩu, nó sẽ không được đặt. 2) Lệnh thậm chí không được thêm vào lịch sử.

Đối với một số câu hỏi của bạn:

  1. Bash sẽ làm gì với một biến chưa được đặt nếu bạn cố sử dụng nó? bash thường thay thế nó bằng một chuỗi rỗng. Nhưng nói chung, nó phụ thuộc vào cách nó được sử dụng, nó có thể phát sinh lỗi, bạn có thể có câu thay thế giá trị của nó bằng giá trị mặc định trong trường hợp nó không được đặt, v.v. Không có câu trả lời duy nhất cho điều này.
  2. Làm thế nào để một tập lệnh xử lý một biến chưa được đặt? Giống như trên.

Tôi không biết về phần còn lại của vấn đề của bạn, nhưng điều này có thể giúp bạn hiểu vấn đề và giải quyết nó.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.