NPM เพิ่มจากสาวนั่นเป็นส่วนตัวล้มเหลวกับอนุญาตปฏิเสธเมื่อมันมาจากที่มีอยู่แล้วโครงการ

0

คำถาม

ฉันพยายามต้องการดีบั๊กองนี้สุดยอดแปลกเหมือนไม่มีปัญหาอยู่เลยสินะ มีโครงการที่ที่ผมพยายามที่จะติดตั้งส่วนตัวเก็บกับ npm กองบัญชาการ

นี่มันไม่ทำงานเมื่อมันอยู่ที่มีอยู่แล้วโครงการแต่ตอนที่มันเป็นรายใหม่ที่ถูกสร้างโครงการนั่นเป็นแค่ถูกสร้างขึ้นกับ npm init.

คนที่มีอยู่อยู่ในโครงการ /app และคงโครงการใหม่อยู่ /opt (สำหรับการทดสอบจุดประสงค์)

วิ่งหนี npm add git+ssh://[email protected]:company/repository.git ใน /app กลับมาด้วย:

npm ERR! code 128
npm ERR! An unknown git error occurred
npm ERR! command git --no-replace-objects ls-remote ssh://[email protected]/company/repository.git
npm ERR! [email protected]: Permission denied (publickey).
npm ERR! fatal: Could not read from remote repository.
npm ERR!
npm ERR! Please make sure you have the correct access rights
npm ERR! and the repository exists.

npm ERR! A complete log of this run can be found in:
npm ERR!     /root/.npm/_logs/2021-11-24T00_25_10_559Z-debug.log

วิ่งคนเดียวกันกับคำสั่งจาก /opt โครงการ installs ของอย่างถูกต้องโดยไม่มีปัญหา

ฉันกำลังจะหมดนี่มาจากการ alpine docker กล่อง openssh ติดตั้งไว้

นี่คือ Dockerfile

FROM node:16.13-alpine

RUN apk add --no-cache openssh-client git python2

RUN mkdir -p -m 0600 ~/.ssh && ssh-keyscan github.com >> ~/.ssh/known_hosts && ln -s /run/secrets/ssh_key ~/.ssh/id_rsa && ln -s /run/secrets/ssh_pub_key ~/.ssh/id_rsa.pub

RUN mkdir /app

WORKDIR /app

เป็นอีกสองสามได้รับข้อมูลมากเลยทีเดีง

/app # node -v
v16.13.0
/app # npm -v
8.1.4
/app # ssh -T [email protected]
Hi AzaZPPL! You've successfully authenticated, but GitHub does not provide shell access.

package.json

{
    "name": "project",
    "version": "1.0.0",
    "private": true,
    "scripts": {
        "dev": "nuxt",
        "build": "nuxt build",
        "start": "nuxt start",
        "generate": "nuxt generate",
        "generate-schema": "node apollo/generate-schema.js",
        "lint": "eslint --ext .js,.vue --ignore-path .eslintignore .",
        "lintfix": "eslint --fix --ext .js,.vue --ignore-path .eslintignore ."
    },
    "dependencies": {
        "@nuxtjs/apollo": "^4.0.1-rc.4",
        "@nuxtjs/auth": "^4.9.1",
        "@nuxtjs/axios": "^5.12.2",
        "@nuxtjs/dayjs": "^1.2.1",
        "@nuxtjs/style-resources": "^1.0.0",
        "apollo-cache-inmemory": "^1.6.6",
        "copy-to-clipboard": "^3.3.1",
        "core-js": "^3.6.5",
        "date-fns": "^2.19.0",
        "dotenv": "^8.2.0",
        "filepond": "^4.27.1",
        "filepond-plugin-file-validate-type": "^1.2.6",
        "filepond-plugin-image-preview": "^4.6.6",
        "graphql-tag": "^2.11.0",
        "js-file-download": "^0.4.12",
        "jwt-decode": "^3.1.2",
        "lodash": "^4.17.20",
        "nuxt": "^2.14.6",
        "nuxt-buefy": "^0.4.10",
        "nuxt-i18n": "^6.15.4",
        "vee-validate": "^3.4.3",
        "vue": "^2.6.12",
        "vue-filepond": "^6.0.3"
    },
    "devDependencies": {
        "@babel/eslint-parser": "^7.16.3",
        "eslint": "^7.12.1",
        "eslint-config-prettier": "^6.15.0",
        "eslint-loader": "^4.0.2",
        "eslint-plugin-prettier": "^3.1.4",
        "eslint-plugin-vue": "^7.1.0",
        "prettier": "^2.1.2",
        "sass": "^1.32.8",
        "sass-loader": "^12.3.0"
    }
}

มีความคิดในสิ่งที่เกิดขึ้นที่นี่?

docker git github node.js
2021-11-24 00:41:33
2
1

ลองในของคุณ Dockerfile เพื่อตั้งค่า

ENV GIT_SSH_COMMAND='ssh -Tv'

นั่นจะทำให้คุณเงื่อนงำอีกทำไมของคุณ COMMENT ญแจหรือไม่ใช่ตอนพิจารณา npm add.

2021-11-24 08:02:52

คำตอบที่ดีที่สุด

1

ด้วยความช่วยเหลือของ@VonC เป็นคำตอบฉันสามารถที่จะคิดให้ออกว่ามันเกิดอะไรขึ้นบ้าง

เป็นแบบว่าน่ากลัวถึงแม้ว่าใช่มั้ที่บันทึกของฉันพบว่ามีอยู่จริงเป็นผู้ใช้ที่เรียกว่า node ซึ่งเป็นเคยตอนวิ่ง npm. ใน Dockerfile ของ Alpine ภาพนี้ของผู้ใช้กำลังถูกสร้างขึ้นมาแล้ว npm คือปรับแต่งค่าที่จะใช้มันใช้งาน

ดังนั้นสิ่งที่เกิดขึ้นเมื่อไหร่ก็ตามที่ฉันได้แจ้งเข้าไปใน docker ตู้คอนเทนเนอร์ฉันคือการทำปูมบันทึกอยู่เหมือ root ผู้ใช้และทั้งหมด comment กุญแจที่ถูกตั้งค่าไว้ใน Dockerfile ถูวิ่งโดย root ใช้งาน

กำลังคน ssh -T [email protected] ทำงานเพราะ root ผู้ใช้ที่ถูกตั้งค่าอย่างถูกต้องแต่ไม่ใช่ node ของผู้ใช้

สิ่งที่ฉันยังวนเวียนอยู่ในห้วของฉันคือทำไมทำงานคำสั่งใน /opt โฟลเดอร์ทำงาน? ยังไงนั่นเป็นเรื่องลึกลับสำหรับคนละวัน

นี่คือของฉันปรับปรุง Dockerfile. ฉันตั้งบริการ ssh กุญแจ node ผู้ใช้และล็อกอินที่คน node ของผู้ใช้

FROM node:16.13-alpine

RUN apk add --no-cache openssh-client git

RUN mkdir /app && chown node:node /app

USER node

RUN mkdir -p -m 0700 ~/.ssh && ssh-keyscan github.com >> ~/.ssh/known_hosts

RUN ln -s /run/secrets/ssh_key ~/.ssh/id_rsa

WORKDIR /app
2021-11-24 09:02:43

ดีตาม,คุณทำได้ดีมาก! Upvoted.
VonC

ในภาษาอื่นๆ

หน้านี้อยู่ในภาษาอื่นๆ

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................

ดังอยู่ในนี้หมวดหมู่

ดังคำถามอยู่ในนี้หมวดหมู่