rlipscombe
When I use Mix.install with a git dependency, using git@github.com:... how do I change the SSH identity used?
I’ve got two Github accounts – work and personal, and usually I’d specify GIT_SSH_COMMAND=ssh -i path/to/private_key -o IdentitiesOnly=yes.
This works fine when running, say, iex and Mix.install in my terminal. When I try the same in Livebook, I get the following error:
git@github.com: Permission denied (publickey).
fatal: Could not read from remote repository.
I’ve tried editing .livebookdesktop.sh – and the env var is set properly according to System.get_env; didn’t work.
I’ve tried using system_env: %{"GIT_SSH_COMMAND" => "ssh -i ... in Mix.install; didn’t work.
How do I get Mix.install to use alternate SSH identities inside Livebook?
Trending in Questions
Hello!
Suppose you are building workflow (order / task / payment) processing system with the following requirements:
Each workflow con...
New
I’m in search of an Elixir library that offers PDF generation capabilities similar to Ruby’s Prawn. While there have been discussions abo...
New
Hey guys,
I’ve got a huge CSV ( around 10 GB ) that needs to be processed hourly
Do you guys have any suggestions what is the best prac...
New
Kia ora,
We have been using elixir-google-api to connect to Google Drive. However, with the updates to Tesla due to CVEs this is now bro...
New
I’m using an Umbrella project for a Phoenix application, and I want to have one Ecto Repo and one PostgreSQL database shared by all apps....
New
I’ve followed the Phoenix LiveView file upload code here Uploads — Phoenix LiveView v1.0.0-rc.7 and so far everything works just fine wit...
New
Hello,
I’m developing a online persistent chat system (what’s app) like using elixir/dynamodb/aws for a mobile app(flutter).
The diffic...
New
Other Trending Topics
Hey, I’m Jesse and I’m the main contributor behind Dexter, a full-featured, lightning-fast Elixir LSP optimized for large codebases. It s...
New
Hobbes is a low-level distributed database for the Elixir programming language.
Hobbes provides a simple, safe, and scalable storage lay...
New
Beam Bots (or just BB for short) is a framework for building fault-tolerant robotics applications in Elixir using familiar OTP patterns. ...
New
ExRatatui lets you cook up rich terminal UIs in Elixir, powered by Rust’s ratatui via Rustler NIFs. Build interactive terminal applicatio...
New
Corex is an accessible, unstyled UI component library for Phoenix that integrates Zag.js state machines using Vanilla JavaScript and Live...
New
Hello everyone. After busy few months I am happy to announce v0.1.0 of Emerge & Solve.
They are GUI (Emerge) and State management (S...
New
Categories:
Sub Categories:
Forums
Popular Tags
- #ecto
- #liveview
- #troubleshooting
- #learning-elixir
- #deployment
- #library
- #erlang
- #testing
- #genserver
- #mix
- #absinthe
- #remote-other
- #otp
- #plug
- #how-to-question
- #macros
- #postgres
- #channels
- #elixirconf
- #exunit
- #discussion
- #code-sync
- #javascript
- #podcasts
- #onsite
- #dialyzer
- #docker
- #authentication
- #umbrella
- #full-time-contract
- #podcasts-by-brainlid
- #ecto-query
- #elixir-ls
- #blog-post
- #ai
- #phoenix_html
- #iex
- #graphql
- #elixirconf-us
- #genstage
- #websockets
- #supervisor
- #advent-of-code
- #distillery
- #processes
- #api
- #forms
- #hex
- #security
- #metaprogramming











Showing Posts 1 to 8- Show Best Posts
- Show All (oldest first)
- Show All (newest first)
dimitarvp
Why is using the
https://...links not an option, by the way? You can just export theGITHUB_TOKENenv var and it should just work. At least it does for me locally in the OS, locally in a Docker container, and in GitHub’s workers (with the.insteadOfgit setting on top).rlipscombe
I don’t want the extra step involved in managing a personal access token.
dimitarvp
Is that adding more friction than providing the extra step of a private key and the command to use it? Your call, seems to me the token would be a touch easier.
rlipscombe
I’ve already got the extra private key, so: yes.
Moreover, in order to apply the
.insteadOfoption, I need a configuration file. And, because I’m keeping my personal and work configurations separate, it’s a separate configuration file.And, if I could persuade
Mix.installto use a separate configuration file, I wouldn’t need the env var – because the configuration file already specifiescore.sshCommand, but that doesn’t seem to do anything here either.josevalim
We don’t do anything special here, so my only suspicion is that the environment variable is not making its way to
git. You could try creating a simple git script, put it on top of your $PATH, and callenvto inspect all of the environment variables. If theGIT_SSH_COMMANDyou set at .livebookdesktop.sh is missing, that would explain it.rlipscombe
I did this. The
GIT_SSH_COMMANDenvironment variable is present, but seems to be ignored by the realgitcommand.Ah! I wonder whether it’s because it can’t talk to the running ssh agent, so it can’t unlock the private key…?
rlipscombe
Yes, probably this.
System.get_env()includes"SSH_AUTH_SOCK" => "/private/tmp/com.apple.launchd.BlahBlah/Listeners".This is not the
SSH_AUTH_SOCKthat my shell’s using –SSH_AUTH_SOCK=/var/folders/bunch/of/letters/and/numbers/agent.1234I’ve got two
ssh-agentprocesses running, and Livebook’s talking to the one that doesn’t have my keys loaded.I wonder how to get
oh-my-zshto talk to the launchd-started one, instead of starting a new one…? That’s a problem for a different forum, however.Thanks for the pointers.
rlipscombe
Summary:
Mix.installuses thegitcommand normally, so environment variables and configuration settings should just work.ssh-agentwith those keys.ssh-agentwith a login script, etc., you’ve probably got more than onessh-agentrunning.launchd-startedssh-agent.